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

153
Views
Cambiar la ruta de URL de un elemento <a> generado dinámicamente

Tengo este <a class="myclass" href="#">test</a> que aparece dinámicamente en una página, ¿cómo modifico el href tan pronto como encuentro el elemento con myclass ?

Mi enfoque inicial ha sido agregar un detector de eventos onclick como se muestra a continuación, pero no parece "sobrescribir" la URL href original

 $('body').on('click', '.myclass', function(){ window.location.href = "https://abcdef.com"; });

Podría agregar una verificación cada 1000 ms y usar getElementsByClassName pero no parece un buen enfoque

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

0

Use un MutationObserver para detectar cambios en la childList del cuerpo y cambie el atributo href del elemento en caso de que sea un ancla:

 let observer = new MutationObserver(records => { for (const record of records) { for (const added of record.addedNodes) { if (added.nodeType == 1) { added.href = "https://stacksnippets.net" } } } }); observer.observe(document.body, { childList: true }); setTimeout(() => document.body.innerHTML += `<a class="myclass" href="#">dynamically added anchor</a>`, 1000)

about 4 years ago · Juan Pablo Isaza Report

0

Lo he estado usando en mis proyectos por un tiempo.

 function waitForElm(selector) { return new Promise(resolve => { if (document.querySelector(selector)) { return resolve(document.querySelector(selector)); } const observer = new MutationObserver(mutations => { if (document.querySelector(selector)) { resolve(document.querySelector(selector)); observer.disconnect(); } }); observer.observe(document.body, { childList: true, subtree: true }); }); }

Para usarlo:

 waitForElm('.some-class').then(elm => console.log(elm.textContent));

o con async/await

 const elm = await waitForElm('.some-classs')
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!