Я динамически добавляю новую строку в DataTables 1.10.2, используя метод table.row.add()
, используя этот код:
table.row.add([
'',
name,
target_l,
details,
panel.html()
]).draw();
Я произвел эту разметку:
<tr role="row" class="odd">
<th>1 .</th>
<td class="sorting_1">ID Fee</td>
<td>All students</td>
<td></td>
<td>
<button class="btn btn-null btn-xs" onclick="_remove(59, 'ID Fee')">
<span class="fui-cross"></span>
</button>
<button class="btn btn-null btn-xs" onclick="_edit(59, 'ID Fee', '', '')">
<span class="icon-pencil"></span>
</button>
</td>
</tr>
Что я хочу сделать, так это добавить data-id (и другие данные) атрибут к вновь добавленному тегу tr (во время или после вставки строки) и сделать что-то вроде это:
<tr data-id="59" role="row" class="odd">
Мне удалось получить индекс вновь добавленной строки с помощью кода, и он возвращает индекс последней строки:
var i = table.row.add([
'',
name,
target_l,
details,
panel.html()
]).index();
А также попытался выполнить следующее, чтобы добавить атрибут data-id, используя этот индекс:
var id = $("#department_id").val();
table.row(i).attr("data-id", id);
// table.row(i).data("id", id);
// I wanted to try this but there is also a method called data() already in
// DataTables so it will not work like in JQuery.
Я новичок в DataTables и уже прокрутил его исходный код, красные комментарии. Хотя не очень хорошо разбираюсь в его функциях, начинающихся с _fn*()
. Если есть какой-то другой способ, не полагаясь на эти _fn*()
функции, спасибо!
table.row(i).data("id",id);
, но не можете, поскольку в DataTables есть функцияdata
. Вы пытались обернутьtable.row(i)
в функцию jQuery, а затем вызвать для нееdata
jQuery? - person Blundering Philosopher   schedule 07.11.2014table.row(i)
не является объектом jquery. Вы не можете ожидать, что функции data или attr будут работать с ним. Вам нужно сначала обернуть его в функцию jQuery, прежде чем вы сможете использовать другие функции$(table.row(i)).data("id", id);
- person evolutionxbox   schedule 15.04.2015