Javascript 将数据属性放在DataTables 1.10的行外接程序上
我使用Javascript 将数据属性放在DataTables 1.10的行外接程序上,javascript,jquery,html,jquery-datatables,datatables-1.10,Javascript,Jquery,Html,Jquery Datatables,Datatables 1.10,我使用table.row.add()方法在DataTables 1.10.2上动态添加新行,使用以下代码: table.row.add([ '', name, target_l, details, panel.html() ]).draw(); 我制作了这个标记: <tr role="row" class="odd"> <th>1 .</th> <td class="sorting_1"&
table.row.add()
方法在DataTables 1.10.2上动态添加新行,使用以下代码:
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>
并尝试执行以下操作,以使用该索引添加数据id属性:
我是DataTables的新手,已经滚动了它的源代码,红色的注释。虽然不善于理解它以\u fn*()
开头的函数。如果有其他方法不依赖这些\u fn*()
函数,谢谢 您可以使用API函数,请参见以下内容:
var i = table.row.add([
'',
name,
target_l,
details,
panel.html()
]).index();
var id = $("#department_id").val();
table.rows(i).nodes().to$().attr("data-id", id);
在您的注释代码中,您说您想做一些类似于
table.row(i).data(“id”,id)的事情代码>但不能,因为DataTables有一个函数data
。您是否尝试过在jQuery函数中包装表。行(i)
,然后在该表上调用jQuery的数据
。行(i)
不是jQuery对象。您不能期望数据或attr函数使用它。您需要先将其包装到jQuery函数中,然后才能使用其他函数$(table.row(i)).data(“id”,id)代码>你解决过这个问题吗,还是它仍然是一个悬而未决的问题?我还没有解决这个问题-(不知道为什么,但是.to$()
对我来说不适用于.node()
。不得不使用$(table.row(i).node())
@FelipeLeão,谢谢你的评论。看来to$()
只适用于节点()
,而不是节点()
,这是一种未记录的。你的解决方法很好。..to$()将节点转换为jQuery元素。
var i = table.row.add([
'',
name,
target_l,
details,
panel.html()
]).index();
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.
var i = table.row.add([
'',
name,
target_l,
details,
panel.html()
]).index();
var id = $("#department_id").val();
table.rows(i).nodes().to$().attr("data-id", id);