5

2 つの jQuery セレクターがまったく同じ要素を選択したかどうかをプログラム的に判断する方法はありますか? 一連の div をループして、そのうちの 1 つをスキップしようとしています。私が欲しいのは次のようなものです:

var $rows, $row, $row_to_skip;
$rows = $('.row-class')
$row_to_skip = $('#skipped_row')

$.each($rows, function (id, row) {
        $row = $(row);
        if (!$row == $row_to_skip) {
            // Do some stuff here.
        };
    });
4

3 に答える 3

8

jQuery オブジェクトを に渡すことができます.not():

$rows.not($row_to_skip).each(function() {
    ...
});
于 2013-06-20T21:45:04.013 に答える
4

使用できます.is()

if (!$row.is($row_to_skip)) {
            // Do some stuff here.
   };
于 2013-06-20T21:43:14.490 に答える
3

jQuery によって選択された実際の DOM 要素を比較できます。

var row_to_skip = $row_to_skip.get(0);
$.each($rows, function (id, row) {
    if (row !== row_to_skip) {
        // Do some stuff here.
    }
});

2 つの jQuery オブジェクトは、同じ要素を選択したとしても、常に互いに異なります (2 つの空のオブジェクトが異なるように)。

ただし、あなたの場合、ループ内で比較するのではなく、セットから要素を削除するだけの方がクリーンです。

$('.row-class').not("#skipped_row").each(function() {
    // do stuff 
});
于 2013-06-20T21:40:34.513 に答える