Làm cách nào để bạn thêm một lớp vào <html>phần tử gốc bằng Javascript?
Làm cách nào để bạn thêm một lớp vào <html>phần tử gốc bằng Javascript?
Câu trả lời:
Như thế này:
var root = document.getElementsByTagName( 'html' )[0]; // '0' to assign the first (and only `HTML` tag)
root.setAttribute( 'class', 'myCssClass' );
Hoặc sử dụng nó làm dòng 'setter' của bạn để bảo toàn bất kỳ lớp nào đã áp dụng trước đó: (thanks @ ama2)
root.className += ' myCssClass';
Hoặc, tùy thuộc vào hỗ trợ trình duyệt được yêu cầu, bạn có thể sử dụng classList.add()phương pháp:
root.classList.add('myCssClass');
https://developer.mozilla.org/en-US/docs/Web/API/Element/classList http://caniuse.com/#feat=classlist
CẬP NHẬT:
Một giải pháp thanh lịch hơn để tham chiếu HTMLphần tử có thể là:
var root = document.documentElement;
root.className += ' myCssClass';
// ... or:
// root.classList.add('myCssClass');
//
classList.add(vỏ lạc đà).
classListkhông hoạt động trên document.documetElement.
root.classList.add('myCssClass')hoạt động trên cả ba.) Bạn đang sử dụng IE?
document.documentElement.classList.adddường như hoạt động tốt ở đây. Các trình duyệt trong năm 2018 đã bắt đầu hỗ trợ điều này chưa?
Điều này cũng sẽ hoạt động:
document.documentElement.className = 'myClass';
Biên tập:
IE 10 cho rằng nó chỉ đọc được; chưa:

Opera hoạt động:

Tôi cũng có thể xác nhận rằng nó hoạt động trong:
U+200Bsau dấu nháy đơn cuối cùng, khiến nó không thể biên dịch trong webpack và các trình biên dịch khác!
document.documentElement.classList.add('myCssClass');
classListđược hỗ trợ kể từ ie10: https://caniuse.com/#search=classlist
Với Jquery ... Bạn có thể thêm lớp vào các phần tử html như sau:
$(".divclass").find("p,h1,h2,h3,figure,span,a").addClass('nameclassorid');
nameclassorid không có điểm hoặc # ở đầu