Como posso selecionar os elementos do link apenas do pai <ul>
em uma lista como esta?
<ul>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a>
<ul>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
</ul>
</li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
Então, em css ul li a
, mas nãoul li ul li a
obrigado
jquery
html
css
css-selectors
aston
fonte
fonte
ul.find(">li");
se você tiver o nó "ul" como objeto JQuery na variável ul.Depois de obter o ul inicial, você pode usar o método children () , que considerará apenas os filhos imediatos do elemento. Como @activa aponta, uma maneira de selecionar facilmente o elemento raiz é fornecer uma classe ou um id. O seguinte assume que você tem um ul root com id
root
.fonte
$('ul').first().children('li')
também pode ser usadoConforme declarado em outras respostas, o método mais simples é identificar exclusivamente o elemento raiz (por ID ou nome de classe) e usar o seletor descendente direto.
No entanto, me deparei com essa questão em busca de uma solução que funcionasse em elementos não nomeados em diferentes profundidades do DOM.
Isso pode ser obtido verificando cada elemento e garantindo que não haja um pai na lista de elementos correspondentes. Aqui está minha solução , envolvida em um seletor jQuery 'topmost'.
Utilizando isso, a solução para a postagem original é:
JsFiddle completo disponível aqui .
fonte
:topmost
- tente usar.parentElement.closest(selector)
. Como sempre, o IE + Edge são os únicos a não suportá-lo> :-( então aqui está um polyfill pastebin.com/JNBk77VmSimplesmente você pode usar isso ..
Veja o exemplo: https://codepen.io/gmkhussain/pen/XzjgRE
fonte
Você pode querer tentar isso se os resultados ainda fluem para os filhos; em muitos casos, o JQuery ainda se aplica aos filhos.
Usando este método: E> F Corresponde a qualquer elemento F que seja filho de um elemento E.
Diz ao JQuery para procurar apenas filhos explícitos. http://www.w3.org/TR/CSS2/selector.html
fonte
Você também pode usar
$("ul li:first-child")
para obter apenas os filhos diretos da UL.Eu concordo, porém, você precisa de um ID ou outra coisa para identificar o UL principal, caso contrário, ele apenas selecionará todos. Se você tivesse um div com um ID em torno do UL, a coisa mais fácil de fazer seria
$("#someDiv > ul > li")
fonte
:first-child
. Isso selecionará o "primeiroli
de cadaul
". A postagem original pedia "cada,li
desde o inícioul
".Experimente isto:
fonte
Eu tive alguns problemas com classes aninhadas de qualquer profundidade, então descobri isso. Ele selecionará apenas o primeiro nível que encontrar de um objeto Jquery contido:
fonte
1
provavelmente existem muitas outras maneiras
fonte
o segundo .form-item no nível da árvore filho do .add_to_cart
fonte