1

データを含むテーブルがあります。簡単にするために、列が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 +"'");
    }
});

これにより、各行が1つずつ取得され、値が取得されます。値が既に存在する場合は前の値(配列に格納されている)がチェックインされ、存在しない場合は配列に追加されます。存在しない場合は、コンソールにメッセージが表示されます。

代わりに、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 に答える