IE中的动态数组未定义错误

时间:2012-10-18 12:34:22

标签: javascript html

我试图生成动态控件。它正在使用FF,但是IE给出了错误:

  

divcntrl[i]未定义。

请检查以下代码:

 var mc=document.getElementById("maindiv");
    var divcntrl = new Array();
    for(var i=0; i<10;i++) {
      divcntrl[i]=document.createElement("div");\\error here
    divcntrl[i].setAttribute("id","div"+ i);
      mc.appendChild(divcntrl[i]);
}

3 个答案:

答案 0 :(得分:1)

没有<div1>元素这样的东西。在fiddle中运行代码,它运行时没有错误,因此问题出在其他地方。你是否缓存了错误的文件版本?

var mc=document.getElementById("maindiv");
var divcntrl = new Array();
for(var i=0; i<10;i++) {
    divcntrl[i]=document.createElement("div");
    divcntrl[i].innerHTML = i;
    mc.appendChild(divcntrl[i]);
}​

我认为您希望将其编码为更像

var mc = document.getElementById("maindiv");
var divcntrl = [];
for (var i=0; i<10; i++) {
    var div = document.createElement("div");
    div.id = "div" + i;
    div.innerHTML = i;
    divcntrl.push(div);
    mc.appendChild(div);
}​

答案 1 :(得分:0)

您可以创建DIV元素,而不是"div"+i元素,因为"div"+i不是任何HTML规范的一部分(“div1”不是HTML元素)。你在混淆“div”和“id”吗?

答案 2 :(得分:0)

问题在于这一行

divcntrl[i]=document.createElement("div" + i);

试试这个:

var divElt = document.createElement("div");
divElt.id = i;
divcntrl[i] = divElt;