Як додати клас до <html>кореневого елементу за допомогою Javascript?
Як додати клас до <html>кореневого елементу за допомогою Javascript?
Відповіді:
Подобається це:
var root = document.getElementsByTagName( 'html' )[0]; // '0' to assign the first (and only `HTML` tag)
root.setAttribute( 'class', 'myCssClass' );
Або використовуйте це як ваш рядок "setter", щоб зберегти всі раніше застосовані класи: (спасибі @ ama2)
root.className += ' myCssClass';
Або, залежно від необхідної підтримки браузера, ви можете використовувати classList.add()метод:
root.classList.add('myCssClass');
https://developer.mozilla.org/en-US/docs/Web/API/Element/classList http://caniuse.com/#feat=classlist
ОНОВЛЕННЯ:
Більш елегантним рішенням для посилання на HTMLелемент може бути таке:
var root = document.documentElement;
root.className += ' myCssClass';
// ... or:
// root.classList.add('myCssClass');
//
classList.add(випадок верблюда).
classListне працює на document.documetElement.
root.classList.add('myCssClass')працював у всіх трьох.) Чи використовуєте ви IE?
document.documentElement.classList.addздається, тут чудово працює. Чи браузери в 2018 році почали підтримувати це?
Це також має спрацювати:
document.documentElement.className = 'myClass';
Редагувати:
IE 10 вважає, що це лише для читання; ще:

Оперні твори:

Я також можу підтвердити, що це працює в:
U+200Bпісля останнього апострофа, що спричиняє невдачу компіляції в webpack та інших компіляторах!
document.documentElement.classList.add('myCssClass');
classListпідтримується з ie10: https://caniuse.com/#search=classlist
Вам слід додати клас, щоб не перезаписувати його
var headCSS = document.getElementsByTagName("html")[0].getAttribute("class") || "";
document.getElementsByTagName("html")[0].setAttribute("class",headCSS +"foo");
Я все одно рекомендую використовувати jQuery, щоб уникнути несумісності браузера
За допомогою Jquery ... Ви можете додати клас до елементів html так:
$(".divclass").find("p,h1,h2,h3,figure,span,a").addClass('nameclassorid');
nameclassorid немає точки або # на початку