用于jquery的DataTables表插件:如何为tr和td设置css类

时间:2013-07-15 12:33:07

标签: javascript jquery datatables

我正在尝试使用DataTables,查询表的插件将css类设置为一行。

初始化完成后,我设法在tr标记上设置了类:

"fnInitComplete": function(oSettings) {
                                for (var i = 0, iLen = oSettings.aoData.length; i < iLen; i++) {
                                    oSettings.aoData[i].nTr.className = "myClass";
                                }
                            },

我想为每个新行设置一个回调,并设置为tratdb

我知道如何添加一个类,我需要设置一个类!

"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标签。

2 个答案:

答案 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');

祝你好运!