Wie fügt man dem <html>Stammelement mit Javascript eine Klasse hinzu ?
Wie fügt man dem <html>Stammelement mit Javascript eine Klasse hinzu ?
Antworten:
So was:
var root = document.getElementsByTagName( 'html' )[0]; // '0' to assign the first (and only `HTML` tag)
root.setAttribute( 'class', 'myCssClass' );
Oder verwenden Sie dies als Ihre 'Setter'-Zeile, um alle zuvor angewendeten Klassen beizubehalten: (danke @ ama2)
root.className += ' myCssClass';
Abhängig von der erforderlichen Browserunterstützung können Sie die folgende classList.add()Methode verwenden:
root.classList.add('myCssClass');
https://developer.mozilla.org/en-US/docs/Web/API/Element/classList http://caniuse.com/#feat=classlist
AKTUALISIEREN:
Eine elegantere Lösung für die Referenzierung des HTMLElements könnte sein:
var root = document.documentElement;
root.className += ' myCssClass';
// ... or:
// root.classList.add('myCssClass');
//
classList.add(Kamel Fall).
classListfunktioniert nicht mit document.documetElement.
root.classList.add('myCssClass')funktionierte in allen drei.) Verwenden Sie IE?
document.documentElement.classList.addscheint hier gut zu funktionieren. Haben Browser im Jahr 2018 damit begonnen, dies zu unterstützen?
Dies sollte auch funktionieren:
document.documentElement.className = 'myClass';
Bearbeiten:
IE 10 geht davon aus, dass es schreibgeschützt ist. noch:

Opera funktioniert:

Ich kann auch bestätigen, dass es funktioniert in:
U+200Bnach dem letzten Apostroph, wodurch die Kompilierung in Webpack und anderen Compilern fehlschlägt!
document.documentElement.classList.add('myCssClass');
classListwird seit ie10 unterstützt: https://caniuse.com/#search=classlist
Sie sollten die Klasse anhängen und nicht überschreiben
var headCSS = document.getElementsByTagName("html")[0].getAttribute("class") || "";
document.getElementsByTagName("html")[0].setAttribute("class",headCSS +"foo");
Ich würde weiterhin empfehlen, jQuery zu verwenden, um Browser-Inkompatibilitäten zu vermeiden
Mit Jquery ... Sie können HTML-Elementen wie folgt eine Klasse hinzufügen:
$(".divclass").find("p,h1,h2,h3,figure,span,a").addClass('nameclassorid');
nameclassorid kein Punkt oder # am Anfang