Estoy tratando de inyectar js para recorrer todas las etiquetas a en una página y eliminar el href para que no vayan a ninguna parte cuando se haga clic.
Para este problema, no puedo usar jquery. Entonces necesito usarlo usando vanilla js (pure js). Esto es lo que tengo hasta ahora:
document.querySelectorAll("a").forEach(ele => { var anchors = document.getElementsByTagName("a"); for(var i =0; i < anchors.length; i++) { var myLink = anchors[i].getAttribute("href"); anchors[i].setAttribute("href",""); } });
Ejecuté el código, pero no se cambió ninguna de las etiquetas href. Todos ellos siguen siendo enlaces. ¿Cómo hacer que todas las etiquetas a no funcionen como enlaces?
También estoy abierto a otras soluciones, como convertir las etiquetas a en divs, o algo más.
Establecer el atributo en una cadena vacía dará como resultado que los anclajes apunten a la página actual :
<a href="">link</a>
En su lugar, elimine el atributo por completo (y elimine el bucle externo innecesario y no utilizado).
var anchors = document.getElementsByTagName("a"); for (var i = 0; i < anchors.length; i++) { anchors[i].removeAttribute("href"); }
<a href="https://example.com">link</a> <a href="https://example.com">link</a>
o
for (const a of document.querySelectorAll('a')) { a.removeAttribute("href"); }
<a href="https://example.com">link</a> <a href="https://example.com">link</a>
Prueba este código
$( "a" ).each( function( index, element ){ element.removeAttribute("href"); });