这段代码困扰了我一整天。假设 ledCount = 9,代码通过 ID 获取元素没有任何问题,但是由于它必须绑定一个单独的函数 onClick,并且由于变量 i 是本地变量,因此 writeLED 函数总是获取第一个参数 10(即 max i+1),但它需要获取当前的 i+1,就像 getElementBy id i+1 一样。任何人都可以解决这个难题?
function showLED(ledCount){
for(var i = 0;i<=(ledCount-1);i++){
if(color[i] == 0){
document.getElementById('buttonLED'+(i+1)).onclick = function(){writeLED((i+1),1); } ;
document.getElementById('buttonLED'+(i+1)).value="light is on";
}else{
document.getElementById('buttonLED'+(i+1)).onclick = function(){writeLED((i+1),0); } ;
document.getElementById('buttonLED'+(i+1)).value="light is off";
}
}
}