三个问题:
getElementsByTagName
必须呼吁文档或元素
- 您不能直接通过
getElementsByTagName
返回的节点列表上添加一个事件侦听器,必须遍历它包含的元素:
- 你有一个错字
addEventListener
这里有一个固定的代码:
var avoidlink = document.getElementsByTagName("a");
for (var i=0; i<avoidlink.length; i++) {
avoidlink[i].addEventListener("click",function(evt){
evt.preventDefault();
},false);
}
如果你希望能够到一个事件侦听器附加到一个节点列表,你可以丰富NodeList.prototype
:
NodeList.prototype.addEventListener = function(){
for (var i=0; i<this.length; i++) {
Element.prototype.addEventListener.apply(this[i] , arguments);
}
}
Demonstration
修改你不属于自己的物体的原型通常是不被接受的,但这种改变是相当无害和自然的。