• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

168
Vistas
HTML: cómo seleccionar una identificación de una lista de identificaciones en querySelector

Estoy escribiendo los siguientes códigos. Hay códigos repetidos para la misma función. Me pregunto si hay una manera de incluir todas las identificaciones en un querySelector de modo que no haya repeticiones. Solo la identificación en el selector es diferente.

El código está aquí:

 function refreshMessage() { courseSocket.send(JSON.stringify({ 'message': 1 })); }; document.querySelector('#next-student').onclick = function(e) { refreshMessage(); }; document.querySelector('#put-back').onclick = function(e) { refreshMessage(); }; document.querySelector('#invite').onclick = function(e) { refreshMessage(); }; document.querySelector('#clear-queue').onclick = function(e) { refreshMessage(); };
about 3 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Iterar sobre todos los selectores...

 const ids = ['next-student', 'put-back', 'invite', 'clear-queue']; for (const id of ids) { document.getElementById(id).onclick = refreshMessage; }

O use la delegación de eventos

 document.addEventListener('click', (e) => { if (e.target.closest('#next-student, #put-back, #invite, #clear-queue')) { refreshMessage(); } });
about 3 years ago · Juan Pablo Isaza Denunciar

0

Usar querySelectorAll

 document.querySelectorAll("#next-student, #put-back, #invite, #clear-queue,[name=rdoGroup]").forEach(function(element) { element.onclick = function(e) { refreshMessage(); } }); function refreshMessage(){ console.log("REFRESHING!"); }
 <button id="next-student">Next</button> <button id="put-back">Put Back</button> <button id="invite">Invite</button> <button id="clear-queue">Clear</button> <label><input type="radio" name="rdoGroup"> Yes</label> <label><input type="radio" name="rdoGroup"> No</label>

O mejor aún, que conserva cualquier oyente de clic existente:

 let selectors = ["#next-student", "#put-back", "#invite", "#clear-queue", "[name=rdoGroup]"]; document.querySelectorAll(selectors.join(",")).forEach(function(element) { element.addEventListener("click", refreshMessage); }); function refreshMessage() { console.log("REFRESHING!"); }
 <button id="next-student">Next</button> <button id="put-back">Put Back</button> <button id="invite">Invite</button> <button id="clear-queue">Clear</button> <label><input type="radio" name="rdoGroup"> Yes</label> <label><input type="radio" name="rdoGroup"> No</label>

about 3 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda