Javascript DataTables删除/隐藏列中包含重复信息的行
我有一个带有网页名称的数据表:Javascript DataTables删除/隐藏列中包含重复信息的行,javascript,jquery,datatable,duplicates,Javascript,Jquery,Datatable,Duplicates,我有一个带有网页名称的数据表: |ID|Page |Domain | ---------------------------- |1 |test.com/page1|test.com| |2 |test.com/page2|test.com| |3 |xyz.net/page1 |xyz.net | |4 |xyz.net/page2 |xyz.net | 我要做的是隐藏(而不是分组)具有重复域的行,并仅显示每个域的第一个结果: |ID|Page |Dom
|ID|Page |Domain |
----------------------------
|1 |test.com/page1|test.com|
|2 |test.com/page2|test.com|
|3 |xyz.net/page1 |xyz.net |
|4 |xyz.net/page2 |xyz.net |
我要做的是隐藏(而不是分组)具有重复域的行,并仅显示每个域的第一个结果:
|ID|Page |Domain |
----------------------------
|1 |test.com/page1|test.com|
|3 |xyz.net/page1 |xyz.net |
我知道该怎么做,但我不知道我该怎么做上面的事
我是否必须使用助手映射/数组编写自己的代码,在其中存储我已经显示的域?或者有没有更聪明的方法在数据表中实现这一点?是的。我认为最简单的方法是首先找到要排除的重复项,然后使用自定义过滤器仅显示未排除的行 循环遍历所有行,将已存在域的行标记为“已排除”: 然后设置一个简单的自定义筛选器,仅使未标记为“排除”的行可见:
$.fn.dataTable.ext.search.push(function(settings, data, dataIndex) {
return table.row(dataIndex).nodes().to$().attr('excluded') != 'true'
})
我们总是可以返回显示所有行
$.fn.dataTable.ext.search.pop()
table.draw()
演示->使用JavaScript字典
var dictionary = {};
table = document.getElementById("YourTableID");
tr = table.getElementsByTagName("tr");
for (i = 0; i < tr.length; i++) {
td = tr[i].getElementsByTagName("td")[0]; // `index for filter`
if (dictionary[td.textContent]) {
tr[i].style.display = "none";
} else {
seen[td.textContent] = true;
}
}
var字典={};
table=document.getElementById(“YourTableID”);
tr=table.getElementsByTagName(“tr”);
对于(i=0;i
非常感谢David提供的宝贵建议和示例
var dictionary = {};
table = document.getElementById("YourTableID");
tr = table.getElementsByTagName("tr");
for (i = 0; i < tr.length; i++) {
td = tr[i].getElementsByTagName("td")[0]; // `index for filter`
if (dictionary[td.textContent]) {
tr[i].style.display = "none";
} else {
seen[td.textContent] = true;
}
}