Pregunta

Tengo una referencia a un elemento DOM, y un objeto jQuery que es el resultado de un selector, y quiero comprobar si ese elemento DOM específico es en ese objeto jQuery. A falta de bucle a través de todo el objeto jQuery y la comprobación de la igualdad, hay una manera sencilla de jQuery para hacer esto?

He tratado .contains, :contains, .has y :has, y ninguno de ellos parecen hacer el trabajo. Además, debo mencionar que todos los elementos con los que trabajo están en el mismo nivel del árbol DOM, así que no hay necesidad de preocuparse por los padres / hijos.

¿Fue útil?

Solución

similar a la respuesta Gumbos, pero más delgado:

if ( obj.filter(function() { return this == el; }).length ) {
    // obj contains el
}

Otros consejos

$yourJqueryObject.is(yourDomElement)

Ver .is () añadido en 1.6.

Prueba esto:

var result = $("selector").find("*").filter(function() {
    return this === elem;
}).length === 1;

elem es el elemento DOM que busca.

Al igual que en la respuesta de David pero incluso más delgado:

if ( obj.filter(el).length ) {
    // obj contains el
}

Un poco hacker, pero funciona para mí:

$.inArray($('#single-element').get(0), $('.many-elements').get()) != -1
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top