2009-03-25 28 views
24

Tôi làm cách nào để chọn <span> trong đó display được đặt thành none trong mã bên dưới?Trong jQuery, làm thế nào tôi có thể chọn một phần tử ẩn?

<p id="p1"> 
<span id="test1" style="display:none">test1</span> 
<span id="test2" >test2</span> 
</p> 

tôi có thể chọn <span> có ID là "test1" bằng cách sử dụng $("span[id='test1']"), nhưng nó không hoạt động khi tôi sử dụng $("span[style='display:none']").

Có phương pháp nào để nhận yếu tố này cùng một lúc không?

Cảm ơn rất nhiều.

+0

Hãy xem tại đây cũng như https://api.jquery.com/hidden-selector/ –

Trả lời

42

Bạn đang tìm kiếm :hidden selector

Xin lưu ý rằng cách đúng đắn trong việc chọn một phần tử bằng ID chỉ đơn giản là:

$("#test1"); 

Làm nó theo cách bạn đang làm là làm cho jQuery làm phân tích cú pháp không cần thiết và chậm hơn nhiều.

Nếu bạn muốn chọn #test1 chỉ khi nó bị ẩn, bạn làm như sau:

$("#test1:hidden"); 

Nếu bạn muốn chọn tất cả <span> yếu tố được ẩn dưới #p1, bạn làm như sau:

$("span:hidden", "#p1"); 

Như đã lưu ý trong phần nhận xét, đối diện của công cụ chọn này là bộ chọn :visible:

$("span:visible", "#p1"); 

Sau đó, chọn bất kỳ phần tử nào có thể nhìn thấy <span> trong phần tử #p1.

+0

chỉ cần lưu ý, điều ngược lại cũng tồn tại để tìm các thành phần hiển thị -: hiển thị –

+0

Đủ công bằng. Đã thêm vào câu trả lời. :) –

+2

Điều này dường như đã thay đổi. Các tài liệu hiện nay nói: "Yếu tố giả định là ẩn nếu nó hoặc cha mẹ của nó tiêu thụ không có không gian trong tài liệu. Khả năng hiển thị CSS không được đưa vào tài khoản." – cweston

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