2009-07-20 16 views
7

He estado tratando de resolver esto por alrededor de 2 días y no puedo entender por qué esto no está funcionando.Variable y jQuery selector

Digamos, por ejemplo, declaro una variable "ul" y quiero decir que var + li muestra rojo.

$("document").ready(function() { 

var menu = $("ul"); 

$(menu +" li").css("color","red"); 

}); 

Todos los elementos de la lista ahora deben ser rojos. ¿Qué estoy haciendo mal?

Ejemplo: http://jsbin.com/izela

Respuesta

9

Para cambiar todos los hijos directos a rojo puede utilizar

menu.children('li').css("color","red");

Si requiere toda li de dentro de la UL (UL anidada> li> ul> li) a continuación, utilizar .find

menu.find('li').css("color","red");

+0

Quiero usar lo que tengo encima, acabo de hacer el ejemplo fácil de entender. –

+0

¿Por qué cuando no es la forma correcta de hacer las cosas? – redsquare

+0

Intenta agregar una cadena a un objeto jQuery. ¡No funcionará! – redsquare

3

debe ejecutar algo como esto:

menu.children('li').css('color', 'red'); 

El problema es que menu es un objeto y cadena añadiendo a un retorno objeto NaN (en FF), que no puede ser utilizado como un selector.

+0

¿Cómo puedo depurar en FF para obtener NaN? –

+0

Bueno, acabo de ejecutar '{} + 'a'' en Firebug – RaYell

2

Lo que está haciendo mal es agregar un objeto jQuery con una cadena. Proveedores:

var menu = $('ul'); 
menu.find('li').css('color', 'red'); 
0

tratar

menu.children('li').css('color', 'red');