Cum pot folosi getElementsByClassName(<code>).outerHTML="" pentru a ascunde un <div> atunci când există mai multe denumiri pentru div class?

0

Problema

Am încercat să învețe cum să se ascundă <div> secțiunile de pe o pagină web, folosind javascript getElementsByClassName("<classname>").outerHTML="".

Totul funcționează foarte bine dacă elementul m-am ascuns, de exemplu <div class="someclassname">Some content I want to hide</div>. Sau, am avea succes dacă se utilizează getElementByID("<divId>") dacă se lucrează cu ex <div id="somedivID">.

Problema este, atunci când doresc pentru a ascunde o <div> care nu are nici id și atunci când există mai multe nume enumerate de div class, cum ar fi de mai jos:

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

Cum pot ascunde astfel un div care nu a id-ul și nici un singur nume de clasă?

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

Cel mai bun răspuns

0

Pentru clasele, poti folosi document.querySelectorAll() împreună cu selectoare css, astfel:

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>

Cu classNames, amintiți-vă că puteți specifica TOATE classNames (uneori este util pentru a indica un element dacă există și alte elemente care conțin o parte din classList:

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

De asemenea, rețineți că document.querySelectorAll() returnează o colecție, nu un șir de caractere - care este de ce este necesar să se utilizeze [0] notație pentru a alege primul element revenit în colecție.

Folosind getElementsByClassName() este mult aceeași idee - din nou, se returnează o colecție și trebuie să fie utilizați [0] notație pentru a obține primul element (de obicei, în cazul în care numai unul este întors), sau o forEach() buclă pentru a alege elementul dorit, bazate pe alte criterii.

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

Minunat, a funcționat! Vă mulțumesc vă mulțumesc! Sunt dator cu o bere!
Jago

În alte limbi

Această pagină este în alte limbi

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