Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

201
Views
¿Cómo puedo obtener la respuesta correcta para el siguiente código de agregar un detector de eventos?

 for(var i = 0 ; i < document.querySelectorAll(".btn").length; i++){ var btn = document.querySelectorAll(".btn")[i]; var btnName = btn.innerHTML; btn.addEventListener("click",function(){ console.log(btnName); }); }
 body{ margin: 0; } *{ box-sizing: border-box; } .btn{ border-style: none; background-color: blue; padding: 10px 20px; margin: 0 20px; color: white; }
 <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>replit</title> <link href="style.css" rel="stylesheet" type="text/css" /> </head> <body> <button class="btn">w</button> <button class="btn">a</button> <button class="btn">s</button> <button class="btn">d</button> <button class="btn">k</button> <script src="script.js"></script> </body> </html>

En el código anterior, quiero imprimir el HTML interno del botón en la consola, cuando se hace clic, pero en lugar de obtener un resultado específico para botones específicos, obtengo el mismo valor para cada botón, que es el último HTML interno del botón.

por ejemplo: problema: cuando hago clic en el botón w, "k" se imprime en la consola en lugar de "w". cuando hago clic en el botón a, "a" se imprime en la consola en lugar de "a". cuando hago clic en el botón k, se imprime "k".

resultado deseado: cuando hago clic en el botón w, "w" se imprime en la consola. cuando hago clic en el botón "a" se imprime en la consola. cuando hago clic en el botón k, "k" se imprime en la consola.

¿Cómo puedo imprimir el HTML interno específico de un botón específico?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Deberías almacenar en caché los elementos.

 const buttons = document.querySelectorAll(".btn"); for(let i = 0 ; i < buttons.length; i++){ button[i].addEventListener("click",function(){ console.log(this.textContent); }); }

o usar para cada uno

 function myClick(){ console.log(this.textContent); }); window.addEventListener("DOMContentLoaded", function() { document.querySelectorAll(".btn") .forEach(btn => btn.addEventListener("click",myClick)); })

Pero en su lugar, POR FAVOR, delegue desde el contenedor estático más cercano

 window.addEventListener("DOMContentLoaded", function() { document.getElementById("container").addEventListener("click", function(e) { const tgt = e.target.closest("button.btn"); if (tgt) console.log(tgt.textContent); }); }); 

 window.addEventListener("DOMContentLoaded", function() { document.getElementById("container").addEventListener("click", function(e) { const tgt = e.target.closest("button.btn"); if (tgt) console.log(tgt.textContent); }); });
 body { margin: 0; } * { box-sizing: border-box; } .btn { border-style: none; background-color: blue; padding: 10px 20px; margin: 0 20px; color: white; }
 <div id="container"> <button class="btn">w</button> <button class="btn">a</button> <button class="btn">s</button> <button class="btn">d</button> <button class="btn">k</button> </div>

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!