2010-10-16 14 views
7

Używam Jquery, aby znaleźć klasę według zmiennej. WięcJquery wybierz klasę ze zmiennej

var className = "whatever"; 

$ ("# kontener ul li"), jeśli zawiera elementu z className, zrób to

Jak napisać powyższy kod?

Czy

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

Oczywiście kod nie działa

Odpowiedz

18

Czy className na elemencie <li>? Jeśli tak, można to zrobić:

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

Po prostu złączenie className w ciągu wybieraka (z the class selector).

Albo to da taki sam wynik.

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

Który jest podobny do rozwiązania .find(), ale uses .filter() ograniczyć znalezione do tych z className<li> elementy.


Jeśli element z className jest potomkiem elementu <li>, następnie using .find() powinny działać, lub można zrobić:

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

... który wygląda prawie tak samo jak ten powyżej , ale wprowadza spację po li, która jest a descendant selector.

+0

Rozwiązanie filtru działa. Dziękuję za wyjaśnienie, że find() służy do znajdowania potomków! –

+0

@RisingSun - Nie ma za co. : o) – user113716