2012-02-17 117 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