Come posso utilizzare getElementsByClassName(<classname>).outerHTML="" per nascondere un <div> quando ci sono più nomi per il div di classe?

0

Domanda

Sto cercando di imparare a nascondere <div> sezioni di una pagina web, utilizzando javascript getElementsByClassName("<classname>").outerHTML="".

Tutto funziona alla grande se l'elemento di sto nascondendo ad es. <div class="someclassname">Some content I want to hide</div>. O, mi hanno successo se si utilizza getElementByID("<divId>") se si lavora con per es. <div id="somedivID">.

Il problema è che, quando si vuole nascondere un <div> che non ha id e quando non ci sono più nomi elencati per il div di classe come di seguito:

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

Come posso nascondere un div che non ha id e nessun nome di classe?

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

Migliore risposta

0

Per le classi, è possibile utilizzare document.querySelectorAll() insieme con i selettori css, come questo:

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 nomi di classi, ricordate che è possibile specificare TUTTI i nomi di classi (a volte è utile per individuare un elemento se ci sono altri elementi che contengono parte del classList:

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

Anche notare che document.querySelectorAll() restituisce una collezione, non una stringa, che è il motivo per cui è necessario utilizzare il [0] notazione per scegliere il primo elemento restituito nella collezione.

Utilizzando getElementsByClassName() è la stessa idea - ancora una volta, restituisce un insieme e si deve utilizzare il [0] notazione per ottenere il primo elemento (di solito se solo uno è restituito), o un forEach() ciclo per scegliere l'elemento desiderato in base ad altri criteri.

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

Impressionante, ha funzionato! Grazie grazie! Ti devo una birra!
Jago

In altre lingue

Questa pagina è in altre lingue

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