有没有办法让我通过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.
};
});
答案 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
});