我有一个包含数据的表。为简单起见,我们假设它只有一列而没有标题。我希望JQuery迭代所有行,以查看同一列中任何单元格中的文本是否在另一行中重复。有一种简单的方法可以做到这一点吗?
<tr><td>one</td></tr>
<tr><td>two</td></tr>
<tr><td>three</td></tr>
<tr><td>four</td></tr>
<tr><td>five</td></tr>
<tr><td>one</td></tr> <!--It is doubled-->
<tr><td>six</td></tr>
答案 0 :(得分:1)
您可以使用以下内容:
var contents = new Array();
$("td").each(function(idx) {
var value = $(this).html();
if($.inArray(value, contents) == -1) {
contents.push(value);
} else {
console.log("Row '" + idx + "' : duplicate value '" + value +"'");
}
});
这将逐行获取每一行并检索值,检查以前的值(存储在数组中)(如果值已存在),如果不存在则将其添加到数组中,否则它会在控制台中显示消息
而不是console.log()
你可以做你需要的,把它存放在某个地方,改变课程等等。
答案 1 :(得分:1)
var nodeArr = [];
$('tr td').each(function () {
var textStr = $(this).text();
if (typeof nodeArr[textStr] === 'undefined') {
nodeArr[textStr] = $(this);
} else { // we have a duplicate
var el1 = nodeArr[textStr],
el2 = $(this);
// and do something with them!
}
});
答案 2 :(得分:0)
SELECT col FROM mytable GROUP BY col HAVING COUNT(*) > 1