$(function(){
$('a').each(function(){
var x=this.href;
this.href="www.somesitename.com/filter"+this.href;
});
});
我写了上面的jQuery脚本,将一些网站名称附加到页面中的所有链接,但它没有按预期工作。
答案 0 :(得分:29)
您可能需要添加http://
:
$(function(){
$('a').each(function() {
$(this).attr('href', 'http://www.somesitename.com/filter' + this.href);
});
});
答案 1 :(得分:13)
我想知道为什么你会使用jQuery来做这样的基本行为......
这就是tag BASE适用于
的原因在页面上为所有链接指定默认网址和默认目标:
<head>
<base href="http://www.w3schools.com/images/" />
<base target="_blank" />
</head>
<body>
<img src="stickman.gif" />
<a href="http://www.w3schools.com">W3Schools</a>
</body>
不要复杂的简单!
<强>加入强>
如果所有相对链接或表单提交转到同一位置,则基本元素对您有用。
答案 2 :(得分:1)
进一步改进达林的解决方案:
$(function(){
$('a').attr('href', (n, old) => 'http://www.somesitename.com/filter' + old);
});
有一件事要注意,如果是 .each ,this.href会生成一个绝对的完全限定网址(例如: http://localhost:8888/mylink ),因此结果可能会像: www.somesitename.com/filter / http://localhost:8888/mylink 。解决方案是通过jQuery获取属性值:$(this).attr(&#39; href&#39;),它正确地产生 / mylink 。
答案 3 :(得分:0)
在脑中定义一个基本标签,然后在需要时更新它的href属性。
<base href="http://www.some-domain.com/" />
$("base").attr("href","http://www.some-other-domain.com/");
答案 4 :(得分:0)
以下是我习惯做的事情
我删除了每个博客/&#39;从页面上的href可以更改链接或更新它
$('a').each(function(){
var updated_link = $(this).attr('href').replace('blog/', '');
$(this).attr('href', updated_link);
});
我已经使用replace函数来更新url的一部分。在你的情况下你可以更新它
答案 5 :(得分:-2)
您可能需要使用jQuery具有http://api.jquery.com/append/
的append()函数