2012-07-06 17 views
7

im cercando di cambiare href con ogni metodo,Come sostituire elemento attr href con ciascuno? // striscia url

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

Non si può sostituire la catena di attr così; prendi l'href come variabile con attr come getter, fai la sostituzione e poi rimettila fuori con attr come setter. (o come elclanrs, suppongo che tu possa solo fare il setter tutto in uno!). –

risposta

14

Il codice che hai postato volontà ottenere il valore come string quindi correttamente replace i valori ma immediatamente scarta il risultato. È necessario passare il valore sostituito a attr. Provate il seguente

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

interessante questo non è in esecuzione nel mio plugin /: mal provato ancora –

+0

capito, qualcos'altro lo stava bloccando, grazie amico! –

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

grazie amico .. :) –

1

è possibile controllare anche il valore href e fare condizione

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