¿Cómo se agrega una clase al <html>
elemento raíz usando Javascript?
javascript
html
Brandon Lebedev
fuente
fuente
Respuestas:
Me gusta esto:
var root = document.getElementsByTagName( 'html' )[0]; // '0' to assign the first (and only `HTML` tag) root.setAttribute( 'class', 'myCssClass' );
O use esto como su línea 'setter' para preservar cualquier clase aplicada previamente: (gracias @ ama2)
root.className += ' myCssClass';
O, según la compatibilidad del navegador requerida, puede utilizar el
classList.add()
método:root.classList.add('myCssClass');
https://developer.mozilla.org/en-US/docs/Web/API/Element/classList http://caniuse.com/#feat=classlist
ACTUALIZAR:
Una solución más elegante para hacer referencia al
HTML
elemento podría ser esta:var root = document.documentElement; root.className += ' myCssClass'; // ... or: // root.classList.add('myCssClass'); //
fuente
classList.add
(caso de camellos).classList
no funciona en document.documetElement.root.classList.add('myCssClass')
funcionó en los tres). ¿Está usando IE?document.documentElement.classList.add
parece funcionar bien aquí. ¿Los navegadores en 2018 comenzaron a admitir esto?Esto también debería funcionar:
document.documentElement.className = 'myClass';
Compatibilidad .
Editar:
IE 10 reconoce que es de solo lectura; todavía:
Obras de ópera:
También puedo confirmar que funciona en:
fuente
U+200B
después del apóstrofe final, lo que hace que falle la compilación en el paquete web y otros compiladores.Te recomiendo que eches un vistazo a jQuery .
forma jQuery:
$("html").addClass("myClass");
fuente
document.documentElement.classList.add('myCssClass');
classList
es compatible desde ie10: https://caniuse.com/#search=classlistfuente
Debe agregar la clase, no sobrescribirla
var headCSS = document.getElementsByTagName("html")[0].getAttribute("class") || ""; document.getElementsByTagName("html")[0].setAttribute("class",headCSS +"foo");
Todavía recomendaría usar jQuery para evitar incompatibilidades con el navegador
fuente
Con Jquery ... Puede agregar clases a elementos html como este:
$(".divclass").find("p,h1,h2,h3,figure,span,a").addClass('nameclassorid');
nameclassorid sin punto o # al principio
fuente