jQuery: Vérifiez si l'objet jQuery contient (y compris) exact élément DOM
Question
I avoir une référence à un élément DOM, et un objet jQuery qui est le résultat d'un sélecteur, et je veux vérifier si cet élément DOM spécifique est dans cet objet jQuery. Court de boucle à travers l'ensemble de l'objet jQuery et la vérification de l'égalité, est-il un moyen simple de jQuery pour ce faire?
J'ai essayé .contains
, :contains
, .has
et :has
, et aucun d'entre eux semblent faire le travail. De plus, je dois dire que tous les éléments avec lesquels je travaille sont sur le même niveau d'arborescence DOM, donc il n'y a pas besoin de se soucier de parents / enfants.
La solution
similaire à réponse Gumbos, mais plus mince:
if ( obj.filter(function() { return this == el; }).length ) {
// obj contains el
}
Autres conseils
$yourJqueryObject.is(yourDomElement)
.is () ajouté au point 1.6.
Essayez ceci:
var result = $("selector").find("*").filter(function() {
return this === elem;
}).length === 1;
elem
est l'élément DOM que vous recherchez.
Tout comme la réponse de David, mais encore plus mince:
if ( obj.filter(el).length ) {
// obj contains el
}
Kinda hackish, mais fonctionne pour moi:
$.inArray($('#single-element').get(0), $('.many-elements').get()) != -1