jQuery替换href中的特定文本

时间:2012-02-17 06:37:00

标签: jquery

你如何只是从下面链接的值改变文本“us-test”,而不必替换整个链接,我使用的当前方法替换整个链接我猜这与函数有关.attr,我猜我可以通过使用.find或其他东西实现这一点我真的没有任何关于怎么做的线索可以有人帮助我这个感谢。

$(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>

3 个答案:

答案 0 :(得分:9)

这取决于你想要达到的目标。我不建议太复杂的事情,如果你事先知道要去哪个URL,替换整个URL可能是最好的,也最容易看到发生了什么。

要替换部分字符串,replace()方法会有所帮助。

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

您还可以将正则表达式作为匹配参数传递。

答案 1 :(得分:2)

你的意思是:


$(".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);  
});

答案 2 :(得分: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/ 希望它有所帮助...