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

How to check if two jQuery selectors have selected the same element

本文关键字:是否 选择 元素 选择器 两个 何检查 检查 jQuery      更新时间:2023-09-26

是否有一种方法可以让我以编程方式确定两个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.
        };
    });

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

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

您可以使用.is()

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

你可以比较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 
});