首页 > 解决方案 > 更改href后链接的onclick不起作用,但在新选项卡中打开有效

问题描述

我有下面的锚标签。我正在尝试搜索具有值 xyz 的属性,然后更改其 herf 并删除不需要的属性。

在控制台上执行此操作后,我可以看到 href 已更改,但单击链接不起作用。但是,当我在新选项卡中打开时,它会以新的 href 打开

<a data-data="test" data-name="xyz" href="#" class="button">this is a link</a>

var pmLink = document.querySelectorAll("[data-name='xyz']");

if (pmLink) {
    pmLink[0].href = "http://www.google.com";
    pmLink[0].removeAttribute("data-data");
    pmLink[0].removeAttribute("data-name");
    } 

标签: javascriptjquery

解决方案


改成:var pmLink = document.querySelector("[data-name='xyz']");

工作片段:

var pmLink = document.querySelector("[data-name='xyz']");
if (pmLink) {
    pmLink.setAttribute('href', 'http://www.google.com');
    pmLink.removeAttribute("data-data");
    pmLink.removeAttribute("data-name");
}
<a data-data="test" data-name="xyz" href="#" class="button">this is a link</a>

如果你有多个然后data-name="xyz"使用querySelectorAll然后你需要迭代和“ this ”。

希望有帮助!享受代码!


推荐阅读