使用for循环创建html元素

时间:2016-08-16 21:47:59

标签: javascript html

我的代码出了什么问题?它应该使用传入的数字(数量)在html中创建输入标签:

For Each ws in Worksheets
    If ws.Name <> "sheet_constant" Then
        CopySheets ws.Name, "sheet_constant"
    End If
Next
// Declare variables
var numberOfGrades = 0;
var NL = "\n";



// Functions
function setQuantity() {
  numberOfGrades = document.getElementById("quantity").value;

  var inputBox = document.createElement("INPUT");
  var BR = document.createElement("br"); // Break line
  var gradeNumber = 1;
  var gradeText = document.createTextNode("Grade " + gradeNumber + ":");

  for (var i = 0; i < numberOfGrades; i++) {
    alert(numberOfGrades);
    document.getElementById("formDiv").appendChild(BR);
   document.getElementById("formDiv").appendChild(gradeText);
    document.getElementById("formDiv").appendChild(inputBox);
    gradeNumber++;
  }


}
body {
  font-family: "Open Sans", sans-serif;
}
.container {
  width: 100%;
  background-color: lightcyan;
  padding: 10px;
}

JSFiddle here

1 个答案:

答案 0 :(得分:2)

当您致电x.appendChild(y)时,节点y将作为孩子从x 添加,将其从已存在于DOM中的位置中删除。

例如:

var x = document.createElement("div");
var y = document.createElement("div");
var z = document.createElement("div");
x.appendChild(y);
z.appendChild(y); // now y is not inside x any more, was **moved** to z

如果你想拥有多个节点,你需要在循环中创建它们。