2013-06-20 13 views
5

Czy istnieje sposób, aby progimatycznie określić, czy dwa selektory jQuery wybrały ten sam dokładny element? Próbuję pętli zestaw div i pominąć jeden z nich. Chciałbym coś takiego:Jak sprawdzić, czy dwa selektory jQuery wybrały ten sam element

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

Odpowiedz

8

można przekazać obiekty jQuery do .not():

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

Możesz porównać rzeczywisty element DOM wybrany przez jQuery:

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

Dwa obiekty jQuery zawsze będą się różnić od siebie, nawet jeśli oni wybrać te same elementy (tak jak dwa puste obiekty są różne).

Jednak w przypadku, zamiast porównywania wewnątrz pętli, to czystsze po prostu usunąć element ze zbioru:

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

Można użyć .is()

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