2010-10-16 14 views
7

Sto usando Jquery per trovare una classe per variabile. Così,Jquery seleziona la classe dalla variabile

var className = "whatever"; 

$ ("# container ul li") se contiene elemento con className, fanno

Come faccio a scrivere il codice di cui sopra?

E '

$("#container ul li").find("."+ className).each(function(){ 
console.log("I found one"); 
}); 

Ovviamente il codice non funziona

risposta

18

È il className sull'elemento <li>? Se è così, si potrebbe fare questo:

$('#container ul li.' + className)... 

Stai solo concatenando il className nella stringa di selezione (con the class selector).

Oppure questo ti darà lo stesso risultato.

$('#container ul li').filter('.' + className)... 

Qual è il simile alla soluzione .find(), ma uses .filter() per limitare la <li> elementi trovati a quelli con il className.


Se l'elemento con il className è un discendente dell'elemento <li>, quindi using .find() dovrebbe funzionare, oppure si potrebbe fare:

$('#container ul li .' + className)... 

... che sembra quasi la stessa di quella di cui sopra , ma introduce uno spazio dopo li, che è a descendant selector.

+0

La soluzione di filtro funziona. Grazie per aver chiarito che find() è usato per trovare i discendenti! –

+0

@RisingSun - Prego. : O) – user113716

Problemi correlati