⊗jsPmPrMEWShB 483 of 505 menu

Múltiples elementos con botones de mostrar en JavaScript

Supongamos que ahora tenemos múltiples párrafos y cada uno tiene su propio botón para ocultar:

<p>1</p><button>toggle</button> <p>2</p><button>toggle</button> <p>3</p><button>toggle</button>

Hagamos que al hacer clic en el botón se oculte o se muestre el párrafo correspondiente.

Para esto, necesitamos de alguna manera relacionar los botones con nuestros párrafos. Existen varias formas de hacer esto.

Primer método

Relacionemos los botones y los párrafos de la siguiente manera:

<p id="elem1">1</p><button data-elem="elem1">toggle</button> <p id="elem2">2</p><button data-elem="elem2">toggle</button> <p id="elem3">3</p><button data-elem="elem3">toggle</button>

Ahora, al hacer clic en cualquier botón, leeremos el contenido de su atributo data-elem y buscaremos el párrafo con ese id. Ese será el que alternaremos. Implementemos lo descrito:

let buttons = document.querySelectorAll('button'); for (let button of buttons) { button.addEventListener('click', function() { let elem = document.querySelector('#' + this.dataset.elem); elem.classList.toggle('hidden'); }); }

Estudia mi solución, y luego por tu cuenta, sin mirar mi código, resuelve este problema.

Segundo método

No es muy conveniente asignar id y atributos data. Hagamos que la relación sea por orden secuencial: que el primer botón oculte el primer párrafo, el segundo botón - el segundo, y así sucesivamente.

Implementemos lo descrito:

let buttons = document.querySelectorAll('button'); let elems = document.querySelectorAll('p'); for (let i = 0; i < buttons.length; i++) { buttons[i].addEventListener('click', function() { elems[i].classList.toggle('hidden'); }); }

Estudia mi solución, y luego por tu cuenta, sin mirar mi código, resuelve este problema.

Tercer método

Como se puede observar, el párrafo relacionado con el botón es su vecino anterior (a la izquierda). Podemos usar esto para establecer la relación:

let buttons = document.querySelectorAll('button'); for (let button of buttons) { button.addEventListener('click', function() { this.previousElementSibling.classList.toggle('hidden'); }); }

Estudia mi solución, y luego por tu cuenta, sin mirar mi código, resuelve este problema.

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar