2012-07-06 53 views
7

我嘗試改變的href每種方法,如何用每個元素的attr href替換? // 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

不能取代鏈到屬性的那樣;只需將href作爲變量與attr作爲一個getter,做替換,然後用attr作爲setter再次將其抽出。 (或者像elclanrs,我想你可以一個人完成二傳手!)。 – 2012-07-06 20:24:34

回答

14

您發佈將代碼獲得價值作爲string然後正確replace的值,但它立即丟棄結果。您需要將替換後的值傳遞給attr。請嘗試以下

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

有趣的是,這沒有運行到我的插件/:生病再試 – 2012-07-06 20:36:03

+0

得到它,別的東西阻止它,謝謝隊友! – 2012-07-06 20:47:25

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

謝謝隊友.. :) – 2012-07-06 20:47:48

1

您還可以檢查href的值,使條件

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