⊗jsSpStGWD 43 of 294 menu

Obtención de elementos DOM sin duplicados

Supongamos que tenemos párrafos y un botón:

<p>aaa</p> <p>bbb</p> <p>ccc</p> <p>ddd</p> <p>eee</p> <button>click me</button>

Supongamos que el usuario hace clic en estos párrafos en un orden arbitrario. Hagamos que al presionar el botón, al final de cada párrafo en el que se haya hecho clic, se agregue un signo de exclamación. Resolvamos el problema usando Set.

Empecemos. Primero obtengamos nuestros elementos en variables:

let button = document.querySelector('button'); let elems = document.querySelectorAll('p');

Creemos una nueva colección Set:

let set = new Set;

Recorramos los párrafos con un ciclo y asignemosles un controlador de eventos para el clic:

for (let elem of elems) { elem.addEventListener('click', function() { }); }

Ahora, al hacer clic en un párrafo, agreguemos ese párrafo a la colección:

for (let elem of elems) { elem.addEventListener('click', function() { set.add(this); }); }

Debido a que usamos la colección Set, un clic repetido en un párrafo no conducirá a la adición de un duplicado del párrafo.

Ahora, al hacer clic en el botón, recorramos el contenido de nuestra colección y a cada párrafo agreguemos un signo de exclamación al final:

button.addEventListener('click', function() { for (let elem of set) { elem.textContent = elem.textContent + '!'; } });

Se dan párrafos y un botón. El usuario hace clic en estos párrafos en un orden arbitrario. Haga que al presionar el botón, al final de cada párrafo en el que se haya hecho clic, se agregue un signo de exclamación.

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