我已經知道環路感謝封這樣如何:我現在想的Javascript關閉:循環內循環
for (var i = first; i <= last; i++) {
document.getElementById(more + i).onmouseover = (function(arg1) {
return function() {
document.getElementById(arg1).style.display = "block";
}
})(i);
}
但要做到一看內循環。 我有必須動態附加到其他元素的DOM的元素。元素是類型:'1text1', '1text2', '1text3',...
和'2text1', '2text2', '2text3', '3text4'...
我已經試過這樣的事情:
var text;
var ktext;
for (var k = 1; k <= last_number; k++) {
for (var i = first; i <= last; i++) {
ktext = k + text;
document.getElementById(ktext + i).onmouseover = (function(arg1, arg2) {
return function() {
document.getElementById(arg1 + arg2).style.display = "block";
}
})(ktext, i);
}
}
但環部分喪失。如果我只在var i
循環的開頭處輸入alert(ktext + i)
,我會看到:1text1, 1text2, 1text3, 1text4
,然後是2text1
(如預期的那樣),但不是2text2, 2text3...
,好像var k
循環的第二遍停止得太早。
你在循環中綁定事件處理程序嗎?你考慮過事件代表團嗎? –
你在初始化之前使用變量'text'。 – 0x499602D2