我正在尝试使用DataTables,查询表的插件将css类设置为一行。
初始化完成后,我设法在tr
标记上设置了类:
"fnInitComplete": function(oSettings) {
for (var i = 0, iLen = oSettings.aoData.length; i < iLen; i++) {
oSettings.aoData[i].nTr.className = "myClass";
}
},
我想为每个新行设置一个回调,并设置为tr
类a
和td
类b
我知道如何添加一个类,我需要设置一个类!
"fnRowCallback": function(nRow, aaData, iDisplayIndex) {
console.log(aaData);
$('tr', nRow).addClass('a');
$('td:eq(0)', nRow).addClass('b');
$('td:eq(1)', nRow).addClass('b');
$('td:eq(2)', nRow).addClass('b');
$('td:eq(3)', nRow).addClass('b');
return nRow;
},
这是困扰我的:
$('tr', nRow).addClass('a');
我不知道如何将课程设置为tr
标签。
答案 0 :(得分:2)
根据文档(fnRowCallback),nRow
代表TR
元素
所以这应该做:
$(nRow).addClass('a');
如果你想将类添加到某个行N#,你可以使用它(只需构建一个合适的选择器):
$("tr:eq(" + rowNumber+ ")").addClass('a');
字符串应如下"tr:eq(1)"
答案 1 :(得分:1)
如果我的理解是正确的,那么您的问题可能就在这一行:
$('tr', nRow).addClass('a');
因为它等同于写作:
$(nRow).find('tr').addClass('a');
你不应该在另一个TR中找到一个TR(除非你正在使用嵌套表,但我们不会进入那个)
如果是这种情况,那么您的修复将是:
$(nRow).addClass('a');
祝你好运!