Como você adiciona uma classe ao <html>elemento raiz usando Javascript?
Como você adiciona uma classe ao <html>elemento raiz usando Javascript?
Respostas:
Como isso:
var root = document.getElementsByTagName( 'html' )[0]; // '0' to assign the first (and only `HTML` tag)
root.setAttribute( 'class', 'myCssClass' );
Ou use isso como sua linha 'setter' para preservar quaisquer classes aplicadas anteriormente: (obrigado @ ama2)
root.className += ' myCssClass';
Ou, dependendo do suporte do navegador necessário, você pode usar o classList.add()método:
root.classList.add('myCssClass');
https://developer.mozilla.org/en-US/docs/Web/API/Element/classList http://caniuse.com/#feat=classlist
ATUALIZAR:
Uma solução mais elegante para referenciar o HTMLelemento pode ser esta:
var root = document.documentElement;
root.className += ' myCssClass';
// ... or:
// root.classList.add('myCssClass');
//
classList.add(caixa de camelo).
classListnão funciona em document.documetElement.
root.classList.add('myCssClass')funcionou em todos os três.) Você está usando o IE?
document.documentElement.classList.addparece funcionar bem aqui. Os navegadores em 2018 começaram a oferecer suporte a isso?
Isso também deve funcionar:
document.documentElement.className = 'myClass';
Editar:
O IE 10 considera que é somente leitura; ainda:

Opera funciona:

Também posso confirmar que funciona em:
U+200Bapós o apóstrofo final, fazendo com que ele falhe na compilação no webpack e em outros compiladores!
document.documentElement.classList.add('myCssClass');
classListé compatível desde o ie10: https://caniuse.com/#search=classlist
Com Jquery ... Você pode adicionar classes a elementos html como este:
$(".divclass").find("p,h1,h2,h3,figure,span,a").addClass('nameclassorid');
nameclassorid nenhum ponto ou # no início