当value =声明时禁用href标记

时间:2016-10-21 21:17:32

标签: javascript jquery html

我想禁用一个href标签,当它的链接是#时,我想这样做的原因是因为我在我的网页上有很多帖子,这些帖子有链接到其他网站作为我的合作伙伴。 当我发帖时,我有一个模板,让我更容易在其上放置信息并准备好href链接,如果任何与该帖子有关的网站想要合作伙伴关系并将其链接到他们。 我的一些旧帖子上有带#值的href标签,当我点击它们时,他们在另一个标签上打开我的页面,这就是为什么我想用javascript(任何其他可以完成这项工作的脚本语言)禁用它也很好)

由于

2 个答案:

答案 0 :(得分:2)

最简单的方法是:

var emptyAnchors = document.querySelectorAll('a[href="#"]');

for (var i = 0; i < emptyAnchors.length; i++) {
    emptyAnchors[i].addEventListener('click', preventDefaultEvent);
}

function preventDefaultEvent(e) {
    e.preventDefault();
}

这将阻止链接点击时的默认行为(打开href目标)。

答案 1 :(得分:0)

您可以选择具有特定#href

的标签

ES6语法

const elements = document.getElementsByTagName("a[href='#']");

ES5语法

var elements = document.getElementsByTagName("a[href='#']");

然后在每个元素的事件上添加一个preventDefault(),以确保不会执行默认行为。

ES6语法

elements.addEventListener('click', e => {
  e.preventDefault();
});

ES5语法

elements.addEventListener('click', function(e){
  e.preventDefault();
});

如果您愿意,可以添加css以使标签失去其默认样式

a[href="#"] {
  color: black;
  pointer-events: none;
  text-decoration: none;
}