item.appendChild不是一个函数

时间:2015-04-21 02:54:53

标签: javascript html css dom

我知道这是一个非常常见的错误,但我已阅读并阅读,无法弄清楚原因。这可能很容易,但我自己无法解决。

var item = document.createElement("div").className = "item";
var img = document.createElement("img").src = imgpath + $(this).attr("href");;
item.appendChild(img);

感谢任何帮助!

编辑:

var item = document.createElement("div");
item.className = "item";
var img = document.createElement("img");
img.src = imgpath + $(this).attr("href");
item.append(img);

这会引发同样的错误。

4 个答案:

答案 0 :(得分:2)

在您的情况下,您正在创建一个div并为其分配一个类名,并为item变量分配相同的值(类名)。所以它是一个没有appendChild方法的字符串值。

var item = document.createElement("div");
item.className = "item";
var img = document.createElement("img");
img.src = imgpath + $(this).attr("href");;
item.appendChild(img);

同样的概念也适用于img

答案 1 :(得分:0)

问题在这里

document.createElement("div").className = "item"

它将返回string,其中没有名为appendChild的方法。您没有对创建的div

的任何引用

你应该这样做

var item = document.createElement("div");
item.className = "item";

var img = document.createElement("img");
img.src = imgpath + $(this).attr("href");
item.appendChild(img);

答案 2 :(得分:0)

因为item是字符串“item”,而不是元素。你需要分解它。

var item = document.createElement("div");
item.className = "item";

图像也需要发生同样的事情。

答案 3 :(得分:0)

document.createElement("div").className = "item";返回一个字符串,而不是DOM节点,因此它对.appendChild()一无所知。试试这个:

var item = document.createElement("div");
item.className = "item";
var img = document.createElement("img");
img.src = imgpath + $(this).attr("href");
item.appendChild(img);