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

DataTables table plugin for jquery: how to set a css class for tr and td

本文关键字:tr td 设置 css DataTables 插件 jquery      更新时间:2023-09-26

我正试图使用表的查询插件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标记。

根据文档(fnRowCallback),nRow表示TR元素

所以应该这样做:

$(nRow).addClass('a');

如果你想把类添加到特定的第N行,你可以使用这个(只需构建一个合适的选择器):

$("tr:eq(" + rowNumber+ ")").addClass('a');

字符串应该像这样"tr:eq(1)"

如果我的理解是正确的,那么你的问题可能在这一行:

$('tr', nRow).addClass('a');

因为它等同于写作:

$(nRow).find('tr').addClass('a');

你不应该在另一个TR中找到一个TR(当然,除非你在处理嵌套表,但我们不会讨论这个问题)

如果是这种情况,那么您的解决方案将是:

$(nRow).addClass('a');

祝你好运!