Come si aggiunge una classe <html>all'elemento radice utilizzando Javascript?
Come si aggiunge una classe <html>all'elemento radice utilizzando Javascript?
Risposte:
Come questo:
var root = document.getElementsByTagName( 'html' )[0]; // '0' to assign the first (and only `HTML` tag)
root.setAttribute( 'class', 'myCssClass' );
Oppure usalo come riga 'setter' per preservare le classi precedentemente applicate: (grazie @ ama2)
root.className += ' myCssClass';
Oppure, a seconda del supporto del browser richiesto, puoi utilizzare il classList.add()metodo:
root.classList.add('myCssClass');
https://developer.mozilla.org/en-US/docs/Web/API/Element/classList http://caniuse.com/#feat=classlist
AGGIORNARE:
Una soluzione più elegante per fare riferimento HTMLall'elemento potrebbe essere questa:
var root = document.documentElement;
root.className += ' myCssClass';
// ... or:
// root.classList.add('myCssClass');
//
classList.add(camel case).
classListnon funziona su document.documetElement.
root.classList.add('myCssClass')funzionato in tutti e tre.) Stai usando IE?
document.documentElement.classList.addsembra funzionare bene qui. I browser nel 2018 hanno iniziato a supportarlo?
Questo dovrebbe funzionare anche:
document.documentElement.className = 'myClass';
Modificare:
IE 10 calcola che è di sola lettura; ancora:

Opera opere:

Posso anche confermare che funziona in:
U+200Bdopo l'apostrofo finale, che fa fallire la compilazione in webpack e altri compilatori!
document.documentElement.classList.add('myCssClass');
classListè supportato da ie10: https://caniuse.com/#search=classlist
Dovresti aggiungere la classe senza sovrascriverla
var headCSS = document.getElementsByTagName("html")[0].getAttribute("class") || "";
document.getElementsByTagName("html")[0].setAttribute("class",headCSS +"foo");
Consiglio comunque di utilizzare jQuery per evitare incompatibilità del browser
Con Jquery ... puoi aggiungere una classe agli elementi html in questo modo:
$(".divclass").find("p,h1,h2,h3,figure,span,a").addClass('nameclassorid');
nameclassorid nessun punto o # all'inizio