jQuery: Überprüfen Sie, ob jQuery-Objekt enthält (enthält) genaue DOM-Element
Frage
Ich habe einen Verweis auf ein DOM-Element, und ein jQuery-Objekt, das das Ergebnis eines Wählers ist, und ich möchte, um zu überprüfen, ob das spezifische DOM-Element in diesem jQuery-Objekt ist. Kurz die durch das ganze jQuery-Objekt Looping und für die Gleichstellung prüft, gibt es eine einfache Möglichkeit, in jQuery dies zu tun?
Ich habe versucht, .contains
, :contains
, .has
und :has
, und keiner von ihnen scheint, um die Arbeit zu erledigen. Ich sollte auch erwähnen, dass alle Elemente, die ich mit bin auf dem gleichen DOM-Baum-Ebene sind, so gibt es keine Notwendigkeit, über Eltern / Kinder zu kümmern.
Lösung
ähnlich wie Gumbos Antwort, aber schlanker:
if ( obj.filter(function() { return this == el; }).length ) {
// obj contains el
}
Andere Tipps
$yourJqueryObject.is(yourDomElement)
Siehe .is () in 1.6 hinzugefügt.
Versuchen Sie folgendes:
var result = $("selector").find("*").filter(function() {
return this === elem;
}).length === 1;
elem
ist das DOM-Element Sie suchen.
ähnlich wie David Antwort aber noch schlanker:
if ( obj.filter(el).length ) {
// obj contains el
}
Kinda hackish, sondern arbeitet für mich:
$.inArray($('#single-element').get(0), $('.many-elements').get()) != -1