次のような閉鎖のおかげで、ループする方法はすでに知っています。
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);
}
}
しかし、ループは部分的に失われています。alert(ktext + i)
ループの最初に置くと、次のvar i
ことがわかります1text1, 1text2, 1text3, 1text4
(2text1
予想どおり)が2text2, 2text3...
、ループの2番目のパスvar k
があまりにも早く停止するようには見えません。