2010-10-16 19 views
7

Tôi đang sử dụng Jquery để tìm một lớp theo biến. Vì vậy,Jquery chọn lớp từ biến

var className = "whatever"; 

$ ("# chứa ul li") nếu chứa phần tử với className, làm được điều này

Làm thế nào để viết mã trên?

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

Rõ ràng mã không hoạt động

Trả lời

18

className trên các yếu tố <li>? Nếu có, bạn có thể làm điều này:

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

Bạn chỉ cần ghép nối tên lớp vào chuỗi chọn (với the class selector).

Hoặc điều này sẽ cho bạn kết quả tương tự.

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

nào là tương tự như giải pháp .find() của bạn, nhưng uses .filter() để hạn chế yếu tố <li> tìm thấy những người có className.


Nếu phần tử với className là một hậu duệ của các yếu tố <li>, sau đó using .find() nên làm việc, hoặc bạn có thể làm:

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

... mà hầu như trông giống như một ở trên , nhưng giới thiệu một không gian sau li, là a descendant selector.

+0

Giải pháp lọc hoạt động. Cảm ơn bạn đã làm rõ rằng find() được sử dụng để tìm con cháu! –

+0

@RisingSun - Bạn được chào đón. : o) – user113716

Các vấn đề liên quan