嘿我正在尝试使用JavaScript创建一个网站,但是我收到了这个错误:
Uncaught TypeError: Failed to execute 'appendChild' on 'Node': parameter 1 is not of type 'Node'at html:12:9
这是我的HTML代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<script>
var divEl = document.createElement("div");
document.body.appendChild(divEl);
var ptag = document.createElement("p").setAttribute("id", "lol");
divEl.appendChild(ptag);
</script>
</body>
</html>
答案 0 :(得分:3)
setAttribute
未返回节点,因此您的ptag
变量设置为undefined
。
来自doc:
添加新属性或更改现有属性的值 指定的元素。返回undefined。
尝试在单独的声明中调用setAttribute
:
<script>
var divEl = document.createElement("div");
document.body.appendChild(divEl);
var ptag = document.createElement("p");
ptag.setAttribute("id", "lol");
divEl.appendChild(ptag);
</script>
答案 1 :(得分:2)
正如@vlaz所指出的那样,setAttribute()
并没有返回一个节点。创建后在ptag上调用它:
var divEl = document.createElement("div");
document.body.appendChild(divEl);
var ptag = document.createElement("p");
ptag.setAttribute("id", "lol");
divEl.appendChild(ptag);