3

我正在尝试使用 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标签。

4

2 回答 2

2

根据文档(fnRowCallback)nRow代表一个TR元素

所以这应该这样做:

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

如果您想将类添加到某些行 N#,您可以使用它(只需构建一个适当的选择器):

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

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

于 2013-07-15T13:45:30.620 回答
1

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

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

因为它等同于写作:

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

而且你不应该能够在另一个 TR 中找到一个 TR(当然,除非你正在使用嵌套表,但我们不会进入那个)

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

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

祝你好运!

于 2013-07-15T13:45:37.560 回答