Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Uncaught TypeError: Failed to execute 'appendChild' on 'Node': parameter 1 is not of type 'Node' [duplicate]

var line = "<p><strong>" + name + ": </strong>" + message.field_message_body.und[0].value + "</p>";
console.log(line);
console.log(document.getElementById("messages"));

document.getElementById("messages").appendChild(line);

messages exists and it returns

<div id=messages"></div>

Nothing appears to be empty, so I'm not sure why this is being thrown.

Does anyone have any idea why it might be throwing this error?

like image 634
Steven Matthews Avatar asked Sep 07 '15 23:09

Steven Matthews


2 Answers

The line variable you're passing isn't a Node, it's a String. Try first using

var line = document.createElement("p");
line.innerHTML = "<strong>" + name + ": </strong>" + message.field_message_body.und[0].value;
document.getElementById("messages").appendChild(line);
like image 163
RK. Avatar answered Nov 16 '22 00:11

RK.


How about this:

var line = "<p><strong>" + name + ": </strong>" + message.field_message_body.und[0].value + "</p>";
var msgHTML = document.getElementById("messages").innerHTML;
document.getElementById("messages").innerHTML = msgHTML + line;
like image 40
Beroza Paul Avatar answered Nov 15 '22 22:11

Beroza Paul