2010-02-07 7 views
14

Tengo una referencia a un elemento DOM, y un objeto jQuery que es el resultado de un selector, y quiero verificar si ese elemento DOM específico está en ese Objeto jQuery. A menos que ocurra un bucle en todo el objeto jQuery y se compruebe la igualdad, ¿hay una forma directa en jQuery de hacerlo?jQuery: compruebe si el objeto jQuery contiene (incluye) el elemento DOM exacto

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 estoy trabajando están en el mismo nivel de árbol DOM, por lo que no hay necesidad de preocuparse por los padres/hijos.

+0

Necesita ser más clara de lo que busca. ¿Estás buscando una ID? –

+0

Sí, debería haber elaborado más. 1. NO tengo identificadores asociados con estos elementos. Sería mucho más fácil si lo hiciera. 2. Mi problema real era determinar si existía un elemento en los hermanos anteriores o los próximos hermanos de un elemento de pivote determinado. Por lo tanto, todas las soluciones que requieren el elemento padre como las que usan .find() no son aplicables. – Suan

Respuesta

9

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

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

Prueba esto:

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

elem es el elemento DOM que busca.

+0

lo que estaba buscando. A la respuesta aceptada le faltaba la parte de hallazgo importante ("*"). – MatteS

0

Un poco hacker, pero funciona para mí:

$.inArray($('#single-element').get(0), $('.many-elements').get()) != -1 
12
$yourJqueryObject.is(yourDomElement) 

Ver .is() añadido en 1.6.

1

Similar a la respuesta de David pero incluso más delgado:

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