动态创建表

时间:2015-12-28 09:07:33

标签: javascript

我正在尝试使用JavaScript动态创建表。到目前为止,我正试图了解我做错了什么。起初我正在制作一个表元素,然后我为该元素设置了id。之后,我循环遍历行,当我这样做时,我在每个新行中创建新列。我遇到的问题是它只停止制作第一行。有人可以指出我犯的错误吗?

var x = document.createElement("TABLE");
x.setAttribute("id", "newTable");
document.body.appendChild(x);
for (i=1;i<5;i++){
    var y = document.createElement("TR");
    y.setAttribute("id", "newTr");
    document.getElementById("newTable").appendChild(y);
       for (j=1;i<10;i++){
           var z = document.createElement("TD");
           var t = document.createTextNode("cell");
           z.appendChild(t);
           document.getElementById("newTr").appendChild(z);
       }
}

2 个答案:

答案 0 :(得分:2)

var x = document.createElement("TABLE");
x.setAttribute("id", "newTable");
document.body.appendChild(x);

for (i=1;i<5;i++){
  var y = document.createElement("TR");
  y.setAttribute("id", "newTr"+i);
  document.getElementById("newTable").appendChild(y);
  for (j=1;j<10;j++){
    var z = document.createElement("TD");
    var t = document.createTextNode("cell");
    z.appendChild(t);
    document.getElementById("newTr" +i).appendChild(z);
  }
}

我将您的第二个for循环从i更改为j,并且我使td-element ID唯一。

答案 1 :(得分:0)

我想你会发现你混淆了ji

 for (j=1;i<10;i++){
       var z = document.createElement("TD");
       var t = document.createTextNode("cell");
       z.appendChild(t);
       document.getElementById("newTr").appendChild(z);
   }

for (i=1;i<10;i++){  //j here changed to i;
       var z = document.createElement("TD");
       var t = document.createTextNode("cell");
       z.appendChild(t);
       document.getElementById("newTr").appendChild(z);
   }
相关问题