Jak dodać klasę do <html>
elementu głównego za pomocą JavaScript?
Jak dodać klasę do <html>
elementu głównego za pomocą JavaScript?
Odpowiedzi:
Lubię to:
var root = document.getElementsByTagName( 'html' )[0]; // '0' to assign the first (and only `HTML` tag)
root.setAttribute( 'class', 'myCssClass' );
Lub użyj tego jako linii 'setter', aby zachować wszystkie wcześniej zastosowane klasy: (dzięki @ ama2)
root.className += ' myCssClass';
Lub, w zależności od wymaganej obsługi przeglądarki, możesz użyć classList.add()
metody:
root.classList.add('myCssClass');
https://developer.mozilla.org/en-US/docs/Web/API/Element/classList http://caniuse.com/#feat=classlist
AKTUALIZACJA:
Bardziej eleganckim rozwiązaniem do odwoływania się do HTML
elementu może być:
var root = document.documentElement;
root.className += ' myCssClass';
// ... or:
// root.classList.add('myCssClass');
//
classList.add
(wielbłąd).
classList
nie działa na document.documetElement.
root.classList.add('myCssClass')
działały we wszystkich trzech). Czy używasz IE?
document.documentElement.classList.add
wydaje się, że działa dobrze tutaj. Czy przeglądarki w 2018 roku zaczęły to obsługiwać?
Powinno to również działać:
document.documentElement.className = 'myClass';
Zgodność .
Edytować:
IE 10 uważa, że jest tylko do odczytu; jeszcze:
Opera działa:
Mogę również potwierdzić, że działa w:
U+200B
po ostatnim apostrofie, co powoduje niepowodzenie kompilacji w webpacku i innych kompilatorach!
document.documentElement.classList.add('myCssClass');
classList
jest obsługiwany od ie10: https://caniuse.com/#search=classlist
Powinieneś dołączyć klasę, a nie ją nadpisywać
var headCSS = document.getElementsByTagName("html")[0].getAttribute("class") || "";
document.getElementsByTagName("html")[0].setAttribute("class",headCSS +"foo");
Nadal zalecałbym używanie jQuery, aby uniknąć niekompatybilności przeglądarek
Za pomocą Jquery ... możesz dodać klasę do elementów html w następujący sposób:
$(".divclass").find("p,h1,h2,h3,figure,span,a").addClass('nameclassorid');
nameclassorid no point lub # na początku