0

我很确定当我看到这个答案时我会狠狠地踢自己(非常努力),但是当我这样做时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 的结果:

在此处输入图像描述

谢谢

4

2 回答 2

3

.appendChild返回对孩子的引用,而不是父母,所以你不能像这样链接它:

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

打破链条,它会起作用:

var markerDiv = document.createElement("div");
markerDiv.appendChild(dynamic);
于 2013-08-04T10:55:29.493 回答
2

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

var div = document.createElement("div");
div.appendChild(dynamic);
document.appendChild(div);
于 2013-08-04T10:54:22.037 回答