1

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

3 回答 3

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()你可以做你需要的,把它存储在某个地方,改变类等等。

于 2012-12-09T21:56:17.683 回答
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!
    }        
});
于 2012-12-09T21:56:46.950 回答
0
SELECT col FROM mytable GROUP BY col HAVING COUNT(*) > 1
于 2012-12-09T21:49:20.563 回答