我正在尝试为动态创建的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;
}
答案 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);