element.preventDefault不会停止默认操作

时间:2014-08-16 19:10:34

标签: javascript

我尝试做了一件事:

var btn_id = document.getElementsByTagName("a");
btn_id.preventDefault;

它没有用。 我想知道这里有什么问题......谢谢。

2 个答案:

答案 0 :(得分:2)

getElementsByTagNameMDN返回一个节点列表,您需要迭代它,将onclickMDN事件处理程序附加到其中的每个元素,然后让该事件处理程序调用{​​{3}}

var anchors = document.getElementByTaqName("a");
//                       ^node list
for(var i = 0; i < anchors.length; i++){
//                           ^iterate length of list
 anchors[i].onclick = function(e){ e.preventDefault(); };
//onclick event ^ handler      ^event        ^call to preventDefault
}

如果只有一个元素可以使用,那将取代anchors[i]的部分,因为这是当前使用的元素。例如,getElementById(返回单个元素)看起来像这样

var element = document.getElementById("someId");
element.onclick = function(e){ e.preventDefault(); };
//onclick ^event handler   ^event        ^call to preventDefault

答案 1 :(得分:-1)

忘记括号 -

btn_id.preventDefault();