2013-06-20 15 views
5

Gibt es eine Möglichkeit für mich, progamatisch zu bestimmen, ob zwei jQuery-Selektoren dasselbe exakte Element ausgewählt haben? Ich versuche, eine Reihe von divs zu überspringen und einen von ihnen zu überspringen. Was ich möchte, ist so etwas wie dieses:Wie überprüft man, ob zwei jQuery-Selektoren das gleiche Element ausgewählt haben?

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

Antwort

8

Sie jQuery verwenden können Objekte weitergeben können in .not():

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

Sie können die tatsächlichen DOM-Element mit jQuery ausgewählt vergleichen:

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

Zwei jQuery Objekte werden immer voneinander verschieden sein können, auch wenn sie wählen die gleiche Elemente (genau wie zwei leere Objekte unterschiedlich sind).

aber in Ihrem Fall, anstatt innerhalb der Schleife zu vergleichen, ist es sauberer nur das Element aus der Menge zu entfernen:

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

Sie .is()

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