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);