Pergunta

Eu tenho uma referência a um elemento DOM, e um objeto jQuery que é o resultado de um seletor, e quero verificar se aquele elemento específico DOM é nesse objeto jQuery. Curto de looping através de todo o objeto jQuery e verificação de igualdade, há uma maneira simples em jQuery para fazer isso?

Eu tentei .contains, :contains, .has e :has, e nenhum deles parece fazer o trabalho. Além disso, devo mencionar que todos os elementos que eu estou trabalhando com estão no mesmo nível da árvore DOM, de modo que não há necessidade de se preocupar com pais / filhos.

Foi útil?

Solução

semelhante à resposta Gumbos, mas mais magro:

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

Outras dicas

$yourJqueryObject.is(yourDomElement)

.is () adicionado em 1.6.

Tente isto:

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

elem é o elemento DOM que você está procurando.

Semelhante a resposta de Davi, mas ainda mais magro:

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

kinda hackish, mas funciona para mim:

$.inArray($('#single-element').get(0), $('.many-elements').get()) != -1
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top