Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marcelo2605

[Resolvido] Jquery: não selecionar os filhos

Recommended Posts

Nesta estrutura:

 

<ul id="menu">
<li>item1</li>
<li>item2
   	<ul id="submenu">
       	<li>subitem 1</li>
       	<li>subitem 2</li>
       	<li>subitem 3</li>
       	<li>subitem 4</li>
       </ul>
   </li>
<li>item3</li>
<li>item4</li>
<li>item5</li>
<li>item6</li>
</ul>

 

Como eu seleciono apenas os itens principais, não os subitens?

 

Tentei isso mas não deu certo:

 

$("#menu > li").css('color', 'red');

Compartilhar este post


Link para o post
Compartilhar em outros sites
$('#menu').children().each(function(){
   if($(this).children().length == 0 ) $(this).css('background-color','red');
});

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está correto o seletor com >

 

o problema de "parecer não ter funcionado" é que os LIs do submenu herdaram o color do LI pai deles.

se você executar assim, por exemplo:

http://jsfiddle.net/cWWZb/

 

verá q estava certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

William, entendi.

 

Mas porque essa mesma lógica não se aplica a uma função por exemplo. Quero que os subitens não sejam clicáveis

 

$("#menu > li").click(function(e) {
   alert('clicado');
});

 

mas não funcionou

Compartilhar este post


Link para o post
Compartilhar em outros sites

ai temos outro problema cara..

 

 

um click no filho é um click no pai. Ai começamos a falar sobre propagation do evento.

http://jsfiddle.net/cWWZb/2/

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.