2009-12-28 38 views
34

Tôi có một số đối tượng trên một trang và tôi muốn thực hiện thao tác bằng jQuery chỉ trên một số trang - đối tượng không có thuộc tính được chỉ định. Vì vậy:Bộ chọn jQuery - tìm đối tượng không có thuộc tính được chỉ định

<li style='...'>some text</li> 
<li style='...'>some other text</li> 
<li>some very diffrent text</li> 

và javascript tôi sẽ có:

$('li[style]').hide(); 

đó sẽ ẩn tất cả các yếu tố với một sttribute style. Nhưng nếu tôi muốn ẩn những cái mà không cần, thì bộ chọn của tôi sẽ như thế nào?

Trả lời

69
jQuery("li:not([style])").hide(); 
+0

Rất đơn giản, trên một dòng ... câu trả lời hoàn hảo! – Druzion

5

Bạn có thể sử dụng: không psuedo-selector để tìm kiếm các yếu tố mà không trận đấu một chọn nhất định. Trong ví dụ của bạn, bạn muốn chọn tất cả các yếu tố li mà không có thuộc tính phong cách, vì vậy bạn muốn sử dụng một cái gì đó như thế này:

$('li:not([style])').hide(); 

Bạn cũng có thể kết hợp với bộ chọn khác:

$('#div input:not(:checked)').show(); 

Đó là một công cụ khá mạnh mẽ!

0

Bạn có thể tìm thấy nó rõ ràng hơn và performant hơn để sử dụng phương pháp .not() thay vì chọn. Như một ví dụ:

$('li').not('[style]').hide(); 

Đây cũng là những gì các nhà phát triển jQuery recommend.

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