如何找到两个相同的文本节点

时间:2012-12-09 21:47:10

标签: jquery

我有一个包含数据的表。为简单起见,我们假设它只有一列而没有标题。我希望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>

3 个答案:

答案 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