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はHTML仕様の一部ではないため、"div"+i要素ではなく要素を作成できます"div"+i( "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 に答える