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

288
Views
JavaScript: obtenga el valor href de varias etiquetas <a>

Sin usar jQuery ni ninguna otra biblioteca, el objetivo es informar al usuario qué URL visitará con un evento de alerta. En el marcado, hay varias etiquetas <a> con diferentes valores href para cada una, cuando el usuario hace clic en la etiqueta <a> , se muestra un evento de alert que menciona a dónde se dirige el usuario antes de abandonar el sitio web.

Flujo de trabajo:

  1. El documento carga
  2. El usuario hace clic en una etiqueta <a>
  3. Se muestra un evento de alert con el valor href de la etiqueta <a> en la que se hizo clic
  4. Una vez que el usuario cierra el evento de alert , el navegador comienza a cargar el sitio web de href

Ejemplo de código:

 document.querySelector('a').onclick = function(e) { e.preventDefault(); var href = document.querySelector('a').href; alert('You are going to: ' + href); window.location = href; }
 <div id="container"> <a class="link" href="https://www.microsoft.com/">Link A</a> <a class="link" href="https://www.google.com/">Link B</a> <a class="link" href="https://www.apple.com/">Link C</a> </div>

Objetivo:

  • Configure el JavaScript dinámicamente para todas las etiquetas <a> para lograr la salida del flujo de trabajo para cada una de ellas (y para cualquier otra etiqueta <a> con la misma class que pueda incluirse en el documento). Tenga en cuenta que solo el enlace A funciona como se desea hasta ahora.

¡Se agradece su codificación para resolver esto!

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

0

Use querySelectorAll() para obtener todas las etiquetas de anclaje, luego revíselas y addEventListener() en lugar de onclick , porque onclick solo se puede asignar a un elemento a la vez. Además, puede tomar el href con e.target.href . e.target es el elemento sobre el que se actuó para iniciar el evento.

 document.querySelectorAll('a').forEach(function(el) { el.addEventListener("click", function(e) { if (e.target.matches('.link')) { e.preventDefault(); var href = e.target.href; alert('You are going to: ' + href); //window.location = href; } }) })
 <div id="container"> <a class="link" href="https://www.microsoft.com/">Link A</a> <a class="link" href="https://www.google.com/">Link B</a> <a class="link" href="https://www.apple.com/">Link C</a> </div>

about 4 years ago · Juan Pablo Isaza Report

0

querySelector solo coincidirá con el primer elemento que coincida con el selector. Puede usar querySelectorAll para hacer coincidir todos esos elementos, agregar oyentes a todos ellos...

O

Adjunte un oyente al contenedor (la delegación de eventos le permite capturar eventos de sus hijos a medida que "hacen burbujas" en el DOM). Cuando se hace clic en un elemento secundario, la función del controlador verifica que sea un ancla con una clase .link y luego ejecuta el resto del código.

 const container = document.querySelector('#container'); container.addEventListener('click', handleClick); function handleClick(e) { if (e.target.matches('.link')) { e.preventDefault(); const { href } = e.target; alert(`You are going to: ${href}`); window.location = href; } }
 <div id="container"> <a class="link" href="https://www.microsoft.com/">Link A</a> <a class="link" href="https://www.google.com/">Link B</a> <a class="link" href="https://www.apple.com/">Link C</a> </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!