Как я могу использовать getElementsByClassName(<имя класса>).outerHTML="", чтобы скрыть <имя класса><div>, когда для класса div существует несколько имен?

0

Вопрос

Я пытаюсь научиться прятаться <div> разделы на веб-странице, использующие javascript getElementsByClassName("<classname>").outerHTML="".

Все это отлично работает, если элемент, который я скрываю, например <div class="someclassname">Some content I want to hide</div>. Или у меня есть успех, если я использую getElementByID("<divId>") если вы работаете, например, с <div id="somedivID">.

Проблема в том, что при желании скрыть <div> это не имеет никакого id и когда для класса div указано несколько имен, например, как показано ниже:

<div class="cake forest carousel">Some content I want to hide.</div>

Как я могу скрыть такой div, у которого нет идентификатора и нет единого имени класса?

hide html
2021-11-20 20:17:07
1

Лучший ответ

0

Для занятий вы можете использовать document.querySelectorAll() наряду с селекторами css, такими как этот:

document.querySelector('button').addEventListener('click', () => {
  document.querySelectorAll('.cake')[0].style.display = 'none';
});
<div class="cake forest carousel">Some content I want to hide.</div>
<button>Hide content</button>

С именами классов помните, что вы можете указать ВСЕ имена классов (иногда это полезно для определения одного элемента, если есть другие элементы, которые содержат часть списка классов:

document.querySelectorAll('.cake.forest.carousel')[0] . . .

Также обратите внимание, что document.querySelectorAll() возвращает коллекцию, а не строку - вот почему необходимо использовать [0] обозначение для выбора первого элемента, возвращаемого в коллекции.

С помощью getElementsByClassName() это почти та же идея - опять же, она возвращает коллекцию, и нужно либо использовать [0] обозначение для получения первого элемента (обычно, если возвращается только один) или forEach() цикл для выбора нужного элемента на основе других критериев.

document.querySelector('button').addEventListener('click', () => {
  document.getElementsByClassName('cake forest')[0].style.display = 'none';
});
<div class="cake forest carousel">This div has classes cake, forest and carousel</div>
<div class="cake">This div only has class cake</div>
<button>Hide divs with classes cake AND forest</button>

2021-11-20 20:30:04

Потрясающе, это сработало! Спасибо, спасибо тебе! Я должен тебе пиво!
Jago

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................