2012-04-11 10 views
9

Estoy jugando con jQuery y me encontré con un problema que parece que no puedo resolver. Sé que es posible con jQuery, pero no puedo encontrar un ejemplo adecuado para trabajar. Tengo una página con un par de enlaces regulares con el atributo/valor target="_blank" agregado a él.Eliminar todo target = "_ blank" de los enlaces

¿Cuál es el mejor enfoque con jQuery/JavaScript para eliminar ese valor de cada enlace en la página?

Respuesta

27

Esto debe hacerlo con jQuery ...

$('a[target="_blank"]').removeAttr('target'); 

Con un navegador moderno ...

Array.from(document.querySelectorAll('a[target="_blank"]')) 
    .forEach(link => link.removeAttribute('target')); 

Con un navegador antiguo como IEs anteriores ...

var links = document.links, i, length; 

for (i = 0, length = links.length; i < length; i++) { 
    links[i].target == '_blank' && links[i].removeAttribute('target'); 
} 
+0

+1: Me gustan las comparaciones con jQuery. – iambriansreed

+0

¿Por qué molestarse con '.slice()'? Como está utilizando '.forEach()', simplemente configure el contexto de ese método. '[] .forEach.call (document.querySelectorAll (...' –

+1

@amnotiam No lo había considerado, pero de hecho es una mejor forma de lograrlo. Gracias por su comentario, actualicé mi respuesta. – alex

Cuestiones relacionadas