0

我试图生成动态控制。它正在 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]);
}
4

3 回答 3

1

没有<div1>元素这样的东西。在小提琴中运行您的代码,它运行没有错误,所以问题出在其他地方。您是否缓存了错误版本的文件?

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);
}​
于 2012-10-18T12:37:28.730 回答
0

您可以创建一个DIV元素,而不是一个"div"+i元素,因为"div"+i它不属于任何 HTML 规范(“div1”不是 HTML 元素)。您是否混淆了“div”和“id”?

于 2012-10-18T12:37:08.483 回答
0

问题在于这条线

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

试试这个:

var divElt = document.createElement("div");
divElt.id = i;
divcntrl[i] = divElt;
于 2012-10-18T12:39:55.307 回答