2010-03-12 16 views
7

tengo este código:Seleccionar todo li de los niños, pero no

$li = $("li", this) 

¿Qué es la selección de todos los li 's en mi código. Esto funciona bien, sin embargo, quiero $li para excluir los li que se encuentran dentro de un submenú.

<ul id="navigation"> 
     <li><a href="#">blah 1</a></li> 
     <ul id="subnav"> 
      <li><a href="#">sub 1</a></li> 
      <li><a href="#">sub 2</a></li> 
      <li><a href="#">sub 3</a></li> 
     </ul> 
     </li> 
     <li><a href="#">blah 2</a></li> 
     <li><a href="#">blah 3</a></li> 
     <li><a href="#">blah 4</a></li> 
     <li><a href="#">blah 5</a></li> 
    </ul> 

Así $li sólo se haría referencia a la bla no son los sub del.

pensé que era algo así como:

$li = $("li", this).parents() 

Pero esto no hace lo que yo quiero.

Respuesta

19

sólo tiene que utilizar el selector de hijo >:

$("#navigation > li") 
13

Usted desea utilizar el selector de hijo inmediata, >:

$li = $('#navigation > li'); 
+1

@ David: mirar a nuestras marcas de tiempo - exactamente el mismo segundo :-) –

+1

@Andy: Increíble. +1 para ti, entonces. –

4
var li = $("#navigation > li"); 

El > selecciona sólo los niños directos

+1

+1 Todos los demás obtuvieron crédito :-P – Jeremy

0

Futuro Los Googlers pueden encontrar esta respuesta útil si t Hey está aquí (como yo) en busca de Seleccionar todo li de los niños sin ningún tipo de

$("#mylist li:not(:has(ul))") 

o

$("#mylist li:not(:has(li))") 
Cuestiones relacionadas