Javascript 将变量添加到a';对于';环

Javascript 将变量添加到a';对于';环,javascript,Javascript,代码如下: for (i = 0; i < 8; i++) { var meun = document.createElement("div"); meun.setAttribute('id', i); meun.setAttribute("style", "width:70px; height:70px; background:url(archive/" + i + ".jpg); background-size: 70px 70px; float:left;

代码如下:

for (i = 0; i < 8; i++) {
    var meun = document.createElement("div");

    meun.setAttribute('id', i);
    meun.setAttribute("style", "width:70px; height:70px; background:url(archive/" + i + ".jpg); background-size: 70px 70px; float:left; margin-top:10px; opacity:1");
    document.body.appendChild(frame);
    document.getElementById("frame").appendChild(meun);

    meun.addEventListener('click', function () {
        window.location.href = "i+'.html'"
    }, false);
}
(i=0;i<8;i++)的
{
var meun=document.createElement(“div”);
meun.setAttribute('id',i);
setAttribute(“样式”,“宽度:70px;高度:70px;背景:url(存档/“+i+”.jpg);背景大小:70px 70px;浮动:左侧;页边空白顶部:10px;不透明度:1”);
document.body.appendChild(框架);
document.getElementById(“frame”).appendChild(meun);
meun.addEventListener('click',函数(){
window.location.href=“i+”.html“
},假);
}

我遇到的问题是
addEventListener
:如何将变量
I
传递到
href
中?我想这是一个语法问题。

如果你想使用变量
I
,不要把它放在引号里,这意味着字面上的字母“I”:


如果要使用变量
i
,请不要将其置于引号中,这意味着字面上的字母“i”:


不仅是语法问题,还需要一个闭包:

(function(x) {
    meun.addEventListener('click', function(){window.location.href = x + '.html'}, false);
})(i);

不仅是语法问题,还需要一个闭包:

(function(x) {
    meun.addEventListener('click', function(){window.location.href = x + '.html'}, false);
})(i);

更好地避免使用以数字开头的ID,而是使用字母或下划线,与类相同)更好地避免使用以数字开头的ID,而是使用字母或下划线,与类相同)正如bfavaretto指出的,您还需要一个闭包。否则,所有处理程序的i==8。单击菜单项时,
i
将等于
8
,因此您的代码将始终以
window.location.href='8.html'结尾@Engineer,这是一个与问题中指定的问题不同的问题。参考bfavaretto的答案。@jbabey是的,那是不同的问题。但是你的代码,就像OP的代码一样,也是不正确的,因为这并不能解决问题。正如bfavaretto指出的,你还需要一个闭包。否则,所有处理程序的i==8。单击菜单项时,
i
将等于
8
,因此您的代码将始终以
window.location.href='8.html'结尾@Engineer,这是一个与问题中指定的问题不同的问题。参考bfavaretto的答案。@jbabey是的,那是不同的问题。但是你的代码,就像OP的代码一样,都是不正确的,这并不能解决问题。