JavaScript网站错误:未捕获TypeError:无法执行' appendChild'在' Node'

时间:2016-12-16 15:49:30

标签: javascript html

嘿我正在尝试使用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>

2 个答案:

答案 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>

JSBin:http://jsbin.com/wibeyewuqo/edit?html,output

答案 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);