¿Cómo puedo utilizar getElementsByClassName(<classname>).outerHTML="" para ocultar un <div> cuando hay varios nombres para el div de la clase?

0

Pregunta

Estoy tratando de aprender cómo ocultar <div> secciones en una página web, usando javascript getElementsByClassName("<classname>").outerHTML="".

Todo funciona muy bien si el elemento voy a ocultar por ejemplo, <div class="someclassname">Some content I want to hide</div>. O, me tiene éxito si el uso de getElementByID("<divId>") si está trabajando con, por ejemplo, <div id="somedivID">.

El problema es que, cuando se quiere ocultar un <div> que no tiene id y cuando hay varios nombres para el div de la clase como a continuación:

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

¿Cómo puedo ocultar un div que no tiene identificación y no solo el nombre de la clase?

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

Mejor respuesta

0

Para las clases, puede utilizar document.querySelectorAll() junto con los selectores de 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>

Con los nombres de clases, recuerde que usted puede especificar TODOS los nombres de clases (a veces es útil para localizar un elemento si hay otros elementos que contienen parte de la classList:

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

También tenga en cuenta que document.querySelectorAll() devuelve una colección, no una cadena - que es por qué es necesario el uso de la [0] la notación para elegir el primer elemento que se devuelve en la colección.

El uso de getElementsByClassName() es la misma idea - de nuevo, devuelve una colección y se debe utilizar el [0] la notación para obtener el primer elemento (por lo general, si sólo uno es devuelto), o un forEach() bucle para elegir el elemento deseado basado en otros criterios.

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

Impresionante, funcionó! Gracias! Te debo una cerveza!
Jago

En otros idiomas

Esta página está en otros idiomas

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