我有6个按钮,都有“测试”类。 我希望所有人都能在1到6之间显示他们的号码。
我的代码是:
for (n=0 ; n < document.getElementsByClassName("test").length ; n++) {
document.getElementsByClassName("test")[n].onclick = function() { console.log(n); };
}
但我的console.log只显示“6”。 我能做什么(用最短的代码)?
答案 0 :(得分:0)
您可以在for
循环
for (n = 0; n < document.getElementsByClassName("test").length; n++) {
(function(i) {
document.getElementsByClassName("test")[i].onclick = function() {
console.log(i);
};
}(n))
}
<div class="test">click</div>
<div class="test">click</div>
您也可以使用Array.from()
,Array.prototype.forEach()
Array.from(document.getElementsByClassName("test"))
.forEach(function(el, i) {
el.onclick = function() {
console.log(i)
}
})
<div class="test">click</div>
<div class="test">click</div>