1
私はfoorループ経由でhtml要素にいくつかのクラスを適用しようとしています。問題は、ループ変数が正しく動作しないことです。ループ内でイベントハンドラが正しく動作しない
'use strict'
window.onload = function(){
var elements = document.getElementsByTagName("div")
for(var i = 0; i < elements.length; i++){
elements[i].addEventListener("click", a(this, i), false)
}
function a(e, x){
if(!e.className){
e.className = "class".concat(x)
}
else {
e.classList.remove(e.className)
}
}
}
div{
background-color: red;
}
.class0{
background-color: blue;
}
.class1{
background-color: purple;
}
'a(this、i)'、 'this'は' window'グローバルオブジェクトです。 –
これを削除して 'i'を入れますか? – ZenKurd
あなたは 'a.bind(elements [i]、i)'のようなことをすると思います。 –