我使用平台(Nationbuilder)自动添加标头中的基本标签。它直到最近才出现,现在有几十个带有锚链接的页面最终将用户发送到主页。
我需要使用jQuery在#anchor之前添加当前页面的url。我能找到的最接近的代码是以下代码,但我不知道如何修改它,因此仅修改以#开头的href属性的链接:
$("a").attr("href", "http://www.example.com/pageslug")
所以我想:
<a href="#anchorname"></a>
更改为:
<a href="http://www.example.com/pageslug#anchorname"></a>
答案 0 :(得分:4)
您可以使用CSS属性以selector:
开头不要选择"a"
,而是选择'a[href^="#"]'
含义&#34;带有以#
开头的href属性的标记。
类似于:
$('a[href^="#"]').each(function(i,el){
el.href = "http://www.example.com/pageslug" + el.hash;
});
答案 1 :(得分:3)
本杰明说的一个补充,你需要捕获每个锚点的当前href,这意味着你需要一个循环。所以
$('a[href^="#"]').each(function(index, element){
var $ele = $(element),
oldHref = $ele.attr('href');
$ele.attr('href', '//example.com/page'+ oldHref);
});
答案 2 :(得分:0)
这样的东西?
$('a').attr('href', window.location.pathname + this.attr('href'))