2010-09-22 26 views
27
<div class="outer"> 
    <div class="inner"></div> 
</div> 

¿cómo puedo encontrar el div interno aquí?clase jQuery dentro del selector de clase

$container.find('.outer .inner')

es sólo ir a buscar un div con class="outer inner", ¿es correcto?

así que intentaron

$container.find('.outer > .inner')

pero eso no parece estar funcionando.

Editar:

Sé que es fácil de encontrar con algo así como

$container.find('.outer').find('.inner')

pero estoy buscando para el tipo de sintaxis de selección individual que lee mejor en mi humilde opinión.

+0

¿Cómo se define '$ container'? Además de eso, debería usar selectores únicos siempre que sea posible. Es mucho más fácil de leer si no tiene que buscar las diferentes partes del selector en cualquier lugar. – jwueller

+0

"pero estoy buscando el tipo de sintaxis de selector único que dice mejor". Debería preferir el método '.find (...)' porque será más rápido cuanto más complejo sea su selector o si usa un selector que no es compatible con el navegador. En este caso, el chisporroteo se utilizará para la selección que es/podría ser muy lenta en comparación con un selector dividido con '.find (...)'. – Andreas

Respuesta

58

sólo va a buscar un div con class = "interior exterior", ¿es correcto?

No, '.outer .inner' buscará todos los elementos con la clase .inner que también tienen un elemento con la clase .outer como un antepasado. '.outer.inner' (sin espacio) daría los resultados que está pensando.

'.outer > .inner' buscará hijos inmediatos de un elemento con la clase .outer de elementos con la clase .inner.

Tanto '.outer .inner' como '.outer > .inner' deberían funcionar para su ejemplo, aunque los selectores son fundamentalmente diferentes y debe tener cuidado con esto.

+1

Tuve otro error en mi código que me llevó a pensar que mi selector no funcionaba, pero era después de todo. Gracias por la explicación. – fearofawhackplanet

25

Por esta html:

<div class="outer"> 
    <div class="inner"></div> 
</div> 

Este selector debería funcionar:

$('.outer > .inner') 
Cuestiones relacionadas