子元素未添加到父元素(parent.appendChild)

时间:2013-08-04 10:52:21

标签: javascript

我很确定当我看到答案时我会努力(非常努力)但是当我console.log(markerDiv)时,控制台只输出img元素。我做错了什么?

编辑为答案建议:

var dynamic = document.createElement("img");
dynamic.src = "images/dynamic.png";
dynamic.setAttribute("id", "img-" + markerData[data].registration);
var markerDiv = document.createElement("div");
markerDiv.appendChild(dynamic);

console.log(markerDiv);

console.log的结果:

enter image description here

由于

2 个答案:

答案 0 :(得分:3)

.appendChild返回对子项的引用,而不是父项,因此您不能将其链接起来:

var markerDiv = document.createElement("div").appendChild(dynamic);
// markerDiv === dynamic

打破链条,它会起作用:

var markerDiv = document.createElement("div");
markerDiv.appendChild(dynamic);

答案 1 :(得分:2)

您没有将新创建的div附加到DOM。 Node.appendChild返回新创建的节点(在您的情况下为HTMLImageElement)。

var div = document.createElement("div");
div.appendChild(dynamic);
document.appendChild(div);