Trong ví dụ đầu tiên bạn không truy cập thuộc tính style
, nhưng đến thuộc tính style
. Giá trị của tài sản có thể là bất cứ điều gì, trong trường hợp tài sản style
là một đối tượng. Trong ví dụ thứ hai bạn đang truy cập vào thuộc tính style của thẻ. Giá trị của thuộc tính chỉ có thể là chuỗi.
Trong trường hợp một số thuộc tính có một ánh xạ giữa chúng. Vì vậy, nếu bạn đặt thuộc tính style
trên nút HTML, thuộc tính style
của bạn được cập nhật và kiểu của bạn được áp dụng. Tuy nhiên, điều này không phải lúc nào cũng đúng: một lỗi nổi tiếng trong một số phiên bản của IE (ít nhất là cho đến IE7) là loại ánh xạ bị hỏng, do đó, thiết lập một thuộc tính không được phản ánh đến thuộc tính.
Vì vậy, nếu bạn muốn đặt thuộc tính trên nút HTML, bạn phải sử dụng thuộc tính thứ hai. Nhưng nếu bạn muốn truy cập vào thuộc tính của đối tượng mà đại diện cho nút HTML, bạn phải sử dụng nút đầu tiên.
Trong trường hợp của style
, tùy chọn đầu tiên được khuyến nghị.
Để làm cho nó rõ ràng với một ví dụ (trong các trình duyệt hiện đại):
document.body.style.border = "1px solid red";
console.log(document.body.style); // [object CSSStyleDeclaration]
console.log(document.body.getAttribute("style")); // "border: 1px solid red;"
tôi nghĩ rằng bạn cũng có thể làm 'document.getElementById ('myid') [ 'phong cách']'. Ví dụ, nó có lý do tương tự để sử dụng 'getAttribute()' như @gwynhowell giải thích. – Joseph
đó chỉ là một cách khác để truy cập vào một thuộc tính đối tượng .. phải không? –
yup, chỉ là một cách khác. – Joseph