我在 asp.net 中有一个要修改的数据表。我<tr>
用 JQuery 选择 Datatable 的行:
var rows = $("#dgInformation tr:gt(0)");
但是,<tr>
元素有多个<td>
元素,其中一些被标记为display:none
。如果没有那些隐藏的单元格,我如何获得rows
-variable?
这样做的目的是检查单元格是否彼此不同,并且每个差异只应显示一行。如果我不过滤未显示的元素,它们也会被比较并且我有线条,它们在视觉上是相同的。
更新
它只需向<td>
应该隐藏的元素添加一个 CSS 类即可。然后你在 Firebug 中有一个干净的 DOM 树(我希望我可以这样称呼它)。下面的整个函数供参考:
function filterTable()
{
var rows = $("#dgInformation tr:gt(0)");
var prevRow = null;
var counter = 2;
rows.each(function (index) {
if (prevRow !== null) {
var i = 1;
var changes = 0;
$(this).children("td:visible").each(function () {
if(i > 2){
if ($(':nth-child(' + i + ')', $(prevRow)).html() != $(this).html())
{
$(':nth-child(' + i + ')', $(prevRow)).css('backgroundColor', '#00FF00');
changes = changes + 1;
}
}
i++;
});
if(changes == 0)
{
$(prevRow).css('display','none');
$(prevRow).removeClass();
}
else
{
$(prevRow).removeClass();
if(counter % 2 == 0)
$(prevRow).addClass('dgItemStyle');
else
$(prevRow).addClass('dgAlternatingItemStyle');
counter = counter + 1;
}
}
prevRow = this;
});
}