Como posso usar getElementsByClassName(<classname>).outerHTML="" para ocultar uma <div> quando existem vários nomes para o div class?

0

Pergunta

Eu estou tentando aprender como esconder <div> seções em uma página da web, usando javascript getElementsByClassName("<classname>").outerHTML="".

Tudo funciona muito bem se o elemento estou escondendo e.g. <div class="someclassname">Some content I want to hide</div>. Ou, eu de ter sucesso se a utilizar getElementByID("<divId>") se estiver trabalhando com e. <div id="somedivID">.

O problema é que, quando se quer esconder um <div> que não tem id e quando existem vários nomes listados para a div de classe tal como a abaixo:

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

Como posso ocultar uma div que não tem identificação e sem uma única classe de nome?

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

Melhor resposta

0

Para as aulas, você pode usar document.querySelectorAll() junto com seletores css, como este:

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>

Com o nome de suas classes, lembre-se que você pode especificar TODOS os nomes de classes (que, por vezes, é útil para identificar um elemento se há outros elementos que contêm parte da classList:

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

Observe também que document.querySelectorAll() retorna uma coleção, e não uma seqüência de caracteres que é por isso que é necessário para usar o [0] notação para escolher o primeiro elemento retornado na coleção.

Usando getElementsByClassName() é a mesma idéia - novamente, ele retorna uma coleção e deve-se usar a [0] notação para obter o primeiro elemento (geralmente se apenas um for devolvido), ou uma forEach() loop para escolher o elemento desejado com base em outros critérios.

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

Incrível, ele trabalhou! Obrigado! Eu te devo uma cerveja!
Jago

Em outros idiomas

Esta página está em outros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................