Existe alguma maneira no jQuery de verificar se algum pai, avô ou bisavô tem uma classe.
Eu tenho uma estrutura de marcação que me deixou fazendo esse tipo de coisa no código:
$(elem).parent().parent().parent().parent().hasClass('left')
No entanto, para facilitar a leitura do código, eu gostaria de evitar esse tipo de coisa. Existe alguma maneira de dizer "qualquer pai / avó / bisavô tem essa classe"?
Estou usando o jQuery 1.7.2.
javascript
jquery
html
jquery-selectors
jquery-1.7
crmpicco
fonte
fonte
Respostas:
fonte
.length
como um valor truthy é bastante prolífica em JS, é muito mais clara e fácil de entender.length > 0
Existem várias maneiras de filtrar antepassados de elementos.
Cuidado , o
closest()
método inclui o próprio elemento enquanto verifica o seletor.Como alternativa, se você tiver um seletor exclusivo que corresponda a
$elem
, por exemplo#myElem
, você pode usar:Se você deseja combinar um elemento que depende de qualquer classe ancestral apenas para fins de estilo, use uma regra CSS :
fonte
Is there any way in jQuery to check if any parent,...
,closest()
cheque próprio elemento de modo que este não é realmente responder a pergunta, OP poderia desejar para excluir explecitely o elemento em si, por isso ya, a resposta era usar.parents()
Você pode usar o
parents
método com o.class
seletor especificado e verificar se algum deles corresponde a ele:fonte