2013-06-20 92 views
5

有没有一种方法可以帮助我确定两个jQuery选择器是否选择了相同的元素?我试图循环一组div并跳过其中一个div。我想是这样的:如何检查两个jQuery选择器是否选择了相同的元素

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

回答

8

你可以通过jQuery的对象到.not()

$rows.not($row_to_skip).each(function() { 
    ... 
}); 
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 
}); 
4

您可以使用.is()

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