2016-10-29 2 views
0

Я пытаюсь понять, как использовать переменную this_table в фрагменте кода, который добавляет данные в таблицу. Переменная this_table выглядит так # myTable1. JQuery не видит его как переменную в разделе добавления кода. $('#myTable > tbody > tr').append('<td>info,</td>'); работает нормально.Почему я не могу использовать переменную jQuery?

JQuery

$(document).on('submit', '.myForm', function(e) { 

    var tableid = $(this).closest("div").find("table").attr("id"); //find table id 
    var this_table = '#' + tableid; //Add ID selector 
    $('this_table > tbody > tr').append('<td>info,</td>'); //Append to table 

    e.preventDefault(); 
}); 

ответ

2

Ваша переменная интерпретируется как строка. Вам необходимо сцепить переменную со строкой ...

Изменить эту строку:

$('this_table > tbody > tr').append('<td>info,</td>'); //Append to table 

Для этого:

$(this_table + ' > tbody > tr').append('<td>info,</td>'); //Append to table 
0

Вы можете использовать Jquery найти функцию. изменить линию

$('this_table > tbody > tr').append('<td>info,</td>'); //Append to table 

к этому:

$(this_table).find("tr").append("<td>info</td>"); 
+0

Это не обязательно выбирать один и тот же элемент. Он использует селектор «>», что означает прямой ребенок. Ваш код будет выбирать всех братьев и сестер, являющихся элементом tr. Вы бы использовали $ (this_table) .children ('tbody'). Children ('tr'). Append (' info,'), чтобы получить тот же селектор, который он использует в настоящее время ... – Michael

+0

@Michael Вы правы , благодаря –

Смежные вопросы