我试图生成动态控件。它正在使用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]);
}
答案 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;