выберите HTML с родным JavaScript

0

Я хочу переключить класс на элемент тега html. Я сделал его работу с элементом body, но я не могу найти решение для переключения класса в тег html.

document.querySelector('[data-menu-mobile]').addEventListener('click', function(){
    document.body.classList.toggle('nav-main-mobile-open');
    document.html.classList.toggle('html-color-fill');
});

Я знаю, что это кажется неправильным:

document.html.classList.toggle('html-color-fill');

Каков правильный способ сделать это?

  • 0
    Там нет document.html.
Теги:

3 ответа

2
Лучший ответ

Нет объекта document.html, чтобы перейти к корневому элементу, вы должны использовать document.documentElement.

document.documentElement.classList.toggle('html-color-fill')

  • 0
    Это не HTML-объект, потому что документ начинается с HTML-тега вниз? По какой причине это? Просто чтобы лучше понять этот ответ. Большое спасибо!
  • 1
    Вы можете использовать DOM API с более чем HTML-документами (например, XML или SVG), у которых корневой элемент может иметь другое имя. document.documentElement - это независимый от языка разметки способ получения корневого элемента, в то время как document.body является специфичным для HTML дополнением к DOM API.
Показать ещё 2 комментария
0

Это должно работать:

var elements = document.getElementsByClassName("myclass");

//iterate through all found elements
Array.prototype.forEach.call(elements, function(element) {
   element.className = "html-color-fill";
   //or remove class with:
   //element.className = "";
});
  • 1
    classList.add() , .remove() и .toggle() - это решение в современных браузерах, вопрос в том, как получить элемент html .
  • 0
    Спасибо за разъяснение. Я не видел никакого смысла для установки класса элемента HTML.
Показать ещё 1 комментарий
-2

Чтобы добавить класс к элементу:

var d = document.getElementById("someId");
d.className = d.className + " someclass ";

Чтобы удалить класс из элемента:

var d = document.getElementById("someId");
d.className = d.className.replace(" someclass ", " ");

Ещё вопросы

Сообщество Overcoder
Наверх
Меню