javascript - 更改链接的href

时间:2012-05-24 08:51:31

标签: javascript hash href

我有一个包含jQuery-Tabs的网站,所以我的网址中有一个标签,可以显示所需的标签:

www.abc.de/site#tab4

在这个网站上我有一个如下所示的链接:

<a href="/site.html?option=1" name="optionslink" id="optionslink" onclick="javascript:test()">LINKTEXT</a>

通过此链接,用户可以选择产品选项。该网站在点击时重新加载。我希望在读取url中的hashtag后单击字符串,然后将此字符串添加到url或链接...

我的功能如下:

function test() {
var info=window.location.hash;
alert(info);
document.getElementById("optionslink").href+info;
return true;
}

到目前为止,该功能是点击我得到一个警告弹出窗口,显示正确的标签和它的字符串。但是,在没有添加hashtag +字符串的情况下重新加载网站。它看起来像这样:

www.abc.de/site.html?option=1

应该看起来像:

www.abc.de/site.html?option=1#tab4

我怎样才能使这个工作?

2 个答案:

答案 0 :(得分:3)

您没有更改href属性。尝试

document.getElementById("optionslink").href += info;

您的代码document.getElementById("optionslink").href+info;只是没有效果,因为只有连接,但没有对href属性的赋值。

答案 1 :(得分:2)

只需更改位置:

function test() {
    var info=window.location.hash;
    window.location = document.getElementById("optionslink").href + info;
    return false;
}

<a href="/site.html?option=1" name="optionslink" id="optionslink" onclick="return test();">LINKTEXT</a>

另一方面,您将当前锚传递给函数,并保存DOM查询开销:

function test(anchor) {
    var info=window.location.hash;
    window.location = anchor.href + info;
    return false;
}

<a href="/site.html?option=1" name="optionslink" 
   id="optionslink" onclick="return test(this);">LINKTEXT</a>

请注意,完全不使用inline scripts是javascript事件的最佳做法。

您应该阅读addEventListener,您可以在MDN

中阅读
相关问题