2009-11-17 28 views
5

Đối với phần tử DOM, làm cách nào để nhận tất cả các kiểu được chỉ định trong css cho một phần tử cụ thể? Nó là một trường hợp lặp lại trên tất cả các tên kiểu css?Lấy tất cả các kiểu css cho phần tử DOM (a la Firebug)

Hoặc có cách nào thanh lịch hơn không? Firebug làm như thế nào?

Cảm ơn

Trả lời

-1

Đối với một phần tử DOM, làm thế nào để tôi nhận được tất cả phong cách quy định tại css cho một yếu tố ? Đây có phải là trường hợp của lặp qua tất cả các tên kiểu css không?

Vâng, đúng vậy.

Hoặc có cách nào thanh lịch hơn không?

Tôi không biết thanh lịch hơn (thanh lịch là khá cao trên quy mô chủ quan), nhưng chắc chắn sẽ ngắn hơn và ngọt ngào hơn nếu bạn sử dụng thư viện như jQuery, đây là giải pháp được mã hóa trả lời một câu hỏi khác:

How Can I Get List Of All Element CSS Attributes with jQuery?

như thế nào Firebug làm điều đó?

Tôi không biết.

-1

Bạn có thể lặp qua tất cả các phong cách CSS cho một yếu tố như thế này:

var myElement = document.getElementById('someId'); 
var myElementStyle = myElement.style; 

for(var i in myElementStyle){ 
    // if it's not a number-index, print it out. 
    if(/^[\d]+/.exec(i) == null){ 
     console.log("Style %s = %s", i, myElementStyle[i]); 
     /* 
     * Do other stuff here... 
     */ 
    } 
}
+1

Hi - nhờ đề nghị - tuy nhiên myElementStyle [i] xuất hiện luôn là rỗng. Kiểu của tôi được đặt từ css bên ngoài và không phải là nội dòng –

+1

Đảm bảo bạn đợi để chạy mã này cho đến khi tài liệu tải .. – JasonWyatt

+6

Điều này chỉ hoạt động đối với kiểu nội tuyến. – syockit

5

Bạn sẽ có thể để có được nó với getComputedStyle:

var css = window.getComputedStyle(element); 
for (var i=0; i<css.length; i++) { 
    console.log(css[i] +'='+css.getPropertyValue(""+css[i])) 
} 
Các vấn đề liên quan