Javascript将元素添加到动态div中

时间:2016-10-06 10:27:50

标签: javascript

我正在尝试为动态创建的div添加一些复选框,然后将div附加到静态div。但是我收到了这个错误:

  

TypeError:无法读取null

的属性'appendChild'

我在这一行中收到此错误:

document.getElementById(newDiv).appendChild(checkbox));

代码

function func(staticDiv){
   var newDiv = document.createElement("DIV");
   var checkbox = createCheckbox();

   document.getElementById(newDiv).appendChild(checkbox);
   document.getElementById(staticDiv).appendChild(newDiv);

}

 function createCheckbox() {
     var checkbox = document.createElement("INPUT");
     checkbox.setAttribute("type", "checkbox");
     checkbox.setAttribute("name", "checkbox");
    return checkbox;
 }

3 个答案:

答案 0 :(得分:1)

这是您的完整代码 的代码

 function func(staticDiv){
   var newDiv = document.createElement("DIV");
   var checkbox = createCheckbox();

   newDiv.appendChild(checkbox);
   document.getElementById(staticDiv).appendChild(newDiv);
 }

 function createCheckbox() {
   var checkbox = document.createElement("INPUT");
   checkbox.setAttribute("type", "checkbox");
   checkbox.setAttribute("name", "checkbox");
   return checkbox;
 }

它的原因是因为您正在尝试获取新创建的Div机智ID,但您的div已经有了ID:)

答案 1 :(得分:0)

问题是您将刚刚创建的newDiv元素传递给getElementById方法,该方法应该采用字符串。

您可能只想这样做:

function func(staticDiv){
    var newDiv = document.createElement("DIV");
    var checkbox = createCheckbox();

    newDiv.appendChild(checkbox);
    document.getElementById(staticDiv).appendChild(newDiv);
}

答案 2 :(得分:0)

由于newDiv是实际元素,您只需执行此操作:

newDiv.appendChild(checkbox);
staticDiv.appendChild(newDiv);