Comment ajouter une classe à l' <html>
élément racine en utilisant Javascript?
javascript
html
Brandon Lebedev
la source
la source
Réponses:
Comme ça:
var root = document.getElementsByTagName( 'html' )[0]; // '0' to assign the first (and only `HTML` tag) root.setAttribute( 'class', 'myCssClass' );
Ou utilisez ceci comme ligne de 'setter' pour conserver toutes les classes précédemment appliquées: (merci @ ama2)
root.className += ' myCssClass';
Ou, en fonction de la prise en charge du navigateur requise, vous pouvez utiliser la
classList.add()
méthode:root.classList.add('myCssClass');
https://developer.mozilla.org/en-US/docs/Web/API/Element/classList http://caniuse.com/#feat=classlist
MISE À JOUR:
Une solution plus élégante pour référencer l'
HTML
élément pourrait être la suivante:var root = document.documentElement; root.className += ' myCssClass'; // ... or: // root.classList.add('myCssClass'); //
la source
classList.add
(cas de chameau).classList
ne fonctionne pas sur document.documetElement.root.classList.add('myCssClass')
fonctionné dans les trois.) Utilisez-vous IE?document.documentElement.classList.add
semble bien fonctionner ici. Les navigateurs en 2018 ont-ils commencé à prendre en charge cela?Cela devrait également fonctionner:
document.documentElement.className = 'myClass';
La compatibilité .
Éditer:
IE 10 estime qu'il est en lecture seule; encore:
Œuvres d'opéra:
Je peux également confirmer que cela fonctionne dans:
la source
U+200B
après l'apostrophe finale, ce qui fait échouer la compilation dans le webpack et d'autres compilateurs!Je vous recommande de jeter un œil à jQuery .
jQuery façon:
$("html").addClass("myClass");
la source
document.documentElement.classList.add('myCssClass');
classList
est pris en charge depuis ie10: https://caniuse.com/#search=classlistla source
Vous devez ajouter la classe et non l'écraser
var headCSS = document.getElementsByTagName("html")[0].getAttribute("class") || ""; document.getElementsByTagName("html")[0].setAttribute("class",headCSS +"foo");
Je recommanderais toujours d'utiliser jQuery pour éviter les incompatibilités de navigateur
la source
Avec Jquery ... Vous pouvez ajouter une classe à des éléments html comme ceci:
$(".divclass").find("p,h1,h2,h3,figure,span,a").addClass('nameclassorid');
nameclassorid no point ou # au début
la source