2011-07-14 39 views
5
function test(id) 
{ 
    alert(document.getElementById(id).style.display); 
} 

Chính xác thì getElementById.style.display trả về chính xác là gì? Nó là một đối tượng, hay một giá trị? Cảnh báo không hiển thị gì cả. Tôi không sử dụng số nguyên cho id và nó là duy nhất.document.getElementById (...). Style.display là trống

Trả lời

6

Các phương pháp DOM như document.getElementById() tạo đối tượng trỏ đến- và chứa một số chi tiết nhất định về một HTMLElement hoặc tập hợp các phần tử được chỉ định.

Rất tiếc, thuộc tính .style chỉ biết về các thuộc tính kiểu được đặt bằng cùng một tính năng đó. Trong ví dụ bên dưới, nhấp vào what color? sẽ không hoạt động cho đến khi bạn đã nhấp vào change color.

<html> 
<head> 
<script> 
function whatColor() { 
    var d = document.getElementById('ddd'); 
    alert(d.style.backgroundColor); 
} 
function changeColor() { 
    var d = document.getElementById('ddd'); 
    d.style.backgroundColor='orange'; 
} 
</script> 
<style> 
#ddd { 
    background-color:gray; 
} 
</style> 
</head> 
<body> 
<input type="button" onclick="whatColor();" value="what color?" /> 
<input type="button" onclick="changeColor();" value="change color" /> 
<div id="ddd">&nbsp;</div> 
</body> 
</html> 

tôi khuyên bạn nên đọc trang lớn PKK về getComputedStyle và currentStyle (IE, tất nhiên là khác nhau) http://www.quirksmode.org/dom/getstyles.html

Vào cuối của hướng dẫn, có một chức năng rất phong nha cho mục đích của bạn, mặc dù khuôn khổ như vậy như jQuery cung cấp các chức năng mạnh mẽ cho các yếu tố tạo kiểu trang &: http://api.jquery.com/css/

+0

Cảm ơn bạn đã làm cho nó rõ ràng .style chỉ biết về các giá trị được đặt. Tôi nghĩ rằng điều jquery là những gì tôi đang tìm kiếm. – ShrimpCrackers

1

nó hiển thị giá trị được đặt động. nếu bạn muốn tìm giá trị hiện tại bạn cần giá trị tính toán. cùng một câu hỏi được hỏi, kiểm tra câu trả lời của tôi ở đây

Stackoverflow

+0

Nếu một kiểu được đưa ra trong biểu định kiểu bên ngoài, điều đó có không ghi đè giá trị mặc định không? Tôi đã định nghĩa hiển thị trong một trang CSS bên ngoài cho phần tử mà tôi đang chuyển vào, nhưng nó hiển thị là không xác định. – ShrimpCrackers

+0

ý tôi là, nó sẽ đọc một thuộc tính được thiết lập với javascsript. để có được giá trị được đặt từ biểu định kiểu, bạn cần giá trị được tính – Ibu

0

đoạn của bạn sẽ chỉ hiển thị một giá trị cho style.display nếu nó đã thực sự được thiết lập, nó sẽ không nhất thiết phải hiển thị giá trị mặc định.

1

Thực tế có thể sử dụng window.getComputedStyle(element[, pseudoElt]).

Phương thức này cung cấp các giá trị của tất cả thuộc tính CSS của phần tử sau khi áp dụng bảng định kiểu hoạt động và giải quyết bất kỳ tính toán cơ bản nào mà các giá trị đó có thể chứa.

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