如何检查两个jQuery选择器是否选择了相同的元素

时间:2013-06-20 21:38:22

标签: javascript jquery

有没有办法让我通过progamatically确定两个jQuery选择器是否选择了相同的元素?我试图循环一组div并跳过其中一个。我想要的是这样的:

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.
        };
    });

3 个答案:

答案 0 :(得分:8)

您可以将jQuery对象传递到.not()

$rows.not($row_to_skip).each(function() {
    ...
});

答案 1 :(得分:4)

您可以使用.is()

if (!$row.is($row_to_skip)) {
            // Do some stuff here.
   };

答案 2 :(得分: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.
    }
});

两个jQuery对象总是彼此不同,即使它们选择相同的元素(就像两个空对象不同)。

但是在你的情况下,不是在循环内部进行比较,只需从集合中删除元素就更清晰了:

$('.row-class').not("#skipped_row").each(function() {
    // do stuff 
});