2012-07-06 31 views
7

im tratando de cambiar href con cada método,¿Cómo reemplazar el attr href del elemento con cada uno? // url tira

here is demo, inspect a, you'll see there is no change

html:

<a href="#/news">News</a> 
<a href="#/news/detail">Detail</a> 
<a href="#/sport">Sport</a> 
<a href="#/sport/football">Football</a>​​​​​​​​​​​​ 

jQuery:

$('a').each(function() { 
    $(this).attr('href').replace('#/',''); //tried to erase #/ from all hrefs 
});​ 
+0

No se puede reemplazar la cadena de Attr como esa; acaba de obtener el href como variable con attr como getter, haz el reemplazo y luego vuelve a bombearlo de nuevo con attr como setter. (o como elclanrs, ¡supongo que puedes hacer el setter todo en uno!). –

Respuesta

14

El código que envió voluntad obtener el valor como string entonces correctamente replace los valores, pero inmediatamente descarta el resultado. Debe pasar el valor reemplazado al attr. Pruebe las siguientes

$('a').each(function() { 
    var value = $(this).attr('href'); 
    $(this).attr('href', value.replace('#/','')); 
});​ 
+0

curiosamente esto no se está ejecutando en mi plugin /: intentarlo de nuevo –

+0

lo tengo, algo más lo estaba bloqueando, gracias amigo! –

6
var href = $(this).attr('href'); 
$(this).attr('href', href.replace('#/','')); 
+0

gracias amigo ... :) –

1

También puede comprobar el valor href y hacer condición

<script type="text/javascript"> 
$('a').each(function() { 
    var value = $(this).attr('href'); 
    if(value=='http://google.com') 
    { 
     $(this).attr('href', 'http://youtube.com'); 
    } 
});​ 
</script> 
Cuestiones relacionadas