我试图通过foor循环将一些类应用于html元素。问题是循环变量无法正常工作。
Stream
'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)
}
}
}
答案 0 :(得分:0)
@Patrick建议这样做:
window.onload = function(){
var elements = document.getElementsByTagName("div")
for(var i = 0; i < elements.length; i++){
elements[i].addEventListener("click", a.bind(window, elements[i],i), false)
}
function a(e, x){
if(!e.className){
e.className = "class".concat(x)
}
else {
e.classList.remove(e.className)
}
}
}
您正在调用函数a并将其结果指定为事件处理程序。
使用bind,您可以创建一个函数,该函数将调用a
作为参数传递元素和索引。