2015-11-06 45 views
1

使用JavaScript代替了独特的HTML(HREF)字符串,我怎样才能改变这种无类锚(假设针对独特的HREF字符串):查找和使用JavaScript

<a href="/unique-url-string/"></a> 

到这一点,在页面加载:

<a href="/replacement-url-string/"></a> 

回答

4

您可以根据其href道具选择元素。

$('a[href="/unique-url-string/"]').prop('href', '/replacement-url-string/'); 

如果你想只搜索这些URL的pathname,并保持域名一样,你可以尝试这样的:

$('a').filter(function() { 
    return this.pathname === "/foo/bar" 
}).prop('href', function() { 
    this.pathname = '/butt/butt/butt'; 
    return this; 
}); 
+0

太棒了!做到了。出于好奇,是不是很容易替换说只有一部分的href字符串?例如:domain.com/unique-string/到domain.com/replacement-url-string/,但忽略domain.com部分? – vulgarbulgar

+0

你必须跟踪域名是什么,因为你会重写整个事情。我会发布一个小的更新到我的答案。 –

+0

太棒了。感谢扩展的解决方案。 – vulgarbulgar

0

只是这样做:

$().ready(function(){ 
    $('a').attr("href").replace("unique","replacement"); 
}); 
0

var link = document.getElementById('linkToChange'); 
 
console.log(link.href); 
 
link.href = "http://www.google.com";
<a href="about:blank" id="linkToChange">me</a>

1

试试这个: -

$(function(){ 
    $('a[href="/unique-url-string/"]').attr('href', '/replacement-url-string/'); 
}); 

到替换部分: -

$(function(){ 
    var a = $('a[href="/unique-url-string/"]'); 
    a.attr('href', a.attr('href').replace('unique', 'replacement')); 
}); 
1

仅使用JavaScript而无需库文件

function replaceLink(oldLink, newLink) { 
var x = document.getElementsByTagName("a"); 
    for(var i = 0; i < x.length; i++) 
     if(x[i].href == oldLink) { 
      x[i].href == newLink; 
      break; 
     } 
    } 
}