2012-02-17 156 views
1

如何從下面的鏈接值更改文本「我們測試」,而不必更換整個鏈接,我使用的當前方法替換了我認爲具有的整個鏈接與.attr的功能有關,我猜我可以通過使用.find或其他東西來實現這一點,我真的沒有任何線索如何做到這一點,有人可以幫助我在這個謝謝。jQuery替換href中的特定文本

$(document).ready(function(){ 
$("#box1").click(function(){ 
$("a.mylink").attr("href", "http://google.com"); 
    }); 

$("#box2").click(function(){ 
    $("a.mylinktwo").attr("href", "http://yahoo.com"); 
}); 


<a class="mylink" href="http://google.com/en/get.php?chrome=us-test">Test</a> 
+0

你這樣做是正確的更換整個屬性。 – rkw 2012-02-17 06:42:49

+0

所以我想我不能取代只是我想要的具體文本,即時通訊問這個,因爲我會使用一堆鏈接,而我更改文本的方式它將少於文件的東西...它會看起來比擁有20個長鏈接更清潔。 – donvitto 2012-02-17 06:48:44

回答

6

這取決於你想要達到的目標。我不會建議太複雜的事情,如果你能事先知道要去哪個URL,替換整個URL可能是最好的,並且最容易看到發生了什麼。

要替換部分字符串,replace()方法將有所幫助。

var url = $('.mylink').attr('href') 
url = url.replace('us-test', 'replaced-text') 
$('.mylink').attr('href', url) 

您還可以傳遞正則表達式作爲匹配參數。

+0

感謝Rob只是在尋找什麼,一個問題是什麼「$('。mylink')。attr('href',url)」do:b – donvitto 2012-02-17 07:08:49

+0

,它爲您試圖鏈接的鏈接設置href屬性更新。 – 2012-02-17 07:12:44

+0

好的,再次感謝羅布......有一個好的。 – donvitto 2012-02-17 07:17:42

1

你的意思是:

 

$(".mylink").click(function (e) { 
    e.preventDefault(); 
    var href = $(this).attr("href").replace(/us-test/, ""); 
    //or replace with something 
    var newHref = $(this).attr("href").replace(/us-test/, "somethingelse"); 
    $(this).attr("href", newHref); 
}); 
 
+0

這不起作用 – donvitto 2012-02-17 07:04:04

+0

似乎爲我工作...!請參閱編輯代碼 – 2012-02-17 07:09:04

+0

嗯...我試試這個,我似乎無法得到它的工作,我想問題是在我的最後,感謝反正Sudhir ... – donvitto 2012-02-17 07:31:22

1

使用此代碼:

$(document).ready(function() { 
var link = $('a').attr('href'); 
var equalPosition = link.indexOf('='); 

var sptext= link.substring(equalPosition + 1); 

var s=link.replace(sptext,"replaced-text"); 

    $('.mylink').attr('href', s); 




}); 

檢查這個小提琴 http://jsfiddle.net/W3pmu/1/ 希望它可以幫助...

+0

感謝Gopesh它確實有幫助... – donvitto 2012-02-17 07:12:39

+0

好的...很高興看到你的問題得到解決..祝你好運donvitto – Gopesh 2012-02-17 07:14:46

+0

感謝Gopesh和抱歉我的拼寫錯誤... – donvitto 2012-02-17 07:21:11