如何选择所有<a>标签并注册onclick事件?

Rou*_*uge 2 javascript

我试图选择<a>页面中的所有标签并注册onclick它们。

我的代码:

document.getElementsByTagName('a').onclick = show;


var show = function(){
    alert('hahahha');
}
Run Code Online (Sandbox Code Playgroud)

它不起作用,我的大脑现在很混乱。有任何想法吗?多谢。

Ted*_*opp 5

您将onclick属性设置为元素数组,而不是像您需要的那样单独设置为每个元素。show另外,你在使用它之后才定义它。

var elts = document.getElementsByTagName('a');
var show = function() { alert('hahahha'); }
for (var i = elts.length - 1; i >= 0; --i) {
    elts[i].onclick = show;
}
Run Code Online (Sandbox Code Playgroud)

向后迭代数组比elts.length每次都进行测试更有效。如果需要向前迭代,请将数组长度存储在变量中以提高效率。