2016-12-16 2 views
3

Эй, я пытаюсь сделать сайт только с JavaScript, но я получаю эту ошибку:JavaScript Сайт Ошибка: Uncaught TypeError: Не удалось выполнить «AppendChild» на «Node»

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> 
+5

'document.createElement ("р") SetAttribute ("ID", "лол");' не возвращает узел. – vlaz

ответ

3

setAttribute не возвращает узел, так что ваша переменная ptag становится установлен undefined.

Из doc:

Adds a new attribute or changes the value of an existing attribute on the specified element. Returns 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

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); 
Смежные вопросы