このコードは一日中私を悩ませていました。ledCount = 9 としましょう。コードは問題なく ID で要素を取得しますが、別の関数 onClick をバインドする必要があり、変数 i がローカルであるため、writeLED 関数は常に最初のパラメーター 10 (最大値) を取得します。 i+1) ですが、getElementBy id i+1 のように、現在の 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";
}
}
}