2009-07-27 32 views
35

Làm thế nào tôi có thể kiểm tra giá trị hiển thị của một phần tửJQuery phong cách hiển thị giá trị

<tr id="pDetails" style="display:none"> 

mang lại cho tôi 'display:none'

Tôi muốn viết một kịch bản jquery đó sẽ trở lại tôi chỉ có giá trị của màn hình đó là 'none'

Điều đó có khả thi không?

Trả lời

62

Chỉ cần gọi css với một đối số

$('#idDetails').css('display'); 

Nếu tôi hiểu câu hỏi của bạn. Nếu không, bạn muốn câu trả lời của cletus.

+1

câu trả lời có thể sai. Xin lỗi nếu tôi sai, nhưng tôi nghĩ '.css()' trả về kiểu được tính toán, có thể bao gồm kiểu được kế thừa. Tôi nghĩ rằng OP muốn có được phong cách nội tuyến. Đó là điều khó làm! – JotaBe

0

Điều này sẽ trả lại những gì bạn đã yêu cầu, nhưng tôi sẽ không khuyên bạn nên sử dụng css như thế này. Sử dụng CSS bên ngoài thay vì css nội tuyến.

$("tr[id='pDetails']").attr("style").split(':')[1]; 
+3

Điều này là xấu bởi vì nó không tổng quát khi thuộc tính phong cách có nhiều hơn chỉ hiển thị: blah (bất cứ điều gì, như chiều rộng: 100, sẽ được trộn vào phần tách (':') [1]) –

16

Vâng, đối với một điều epression của bạn có thể được đơn giản hóa:

$("#pDetails").attr("style") 

kể từ khi có chỉ nên là một yếu tố đối với bất kỳ ID nhất định và chọn ID sẽ nhiều nhanh hơn so với thuộc tính id bộ chọn bạn đang sử dụng.

Nếu bạn chỉ muốn trả về giá trị hiển thị hoặc một cái gì đó, sử dụng css():

$("#pDetails").css("display") 

Nếu bạn muốn tìm kiếm cho các yếu tố có hiển thị không có, đó là khó khăn hơn rất nhiều để làm cách đáng tin cậy. Đây là một ví dụ thô mà sẽ không được 100%:

$("[style*='display: none']") 

nhưng nếu bạn chỉ muốn tìm thấy những điều đó được ẩn, sử dụng này:

$(":hidden") 
Các vấn đề liên quan