Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Add an element to the DOM with JavaScript

Tags:

I want add an element with JavaScript.

I have the following code:

var collection = document.getElementsByTagName('body'); var a = document.createElement('div'); a.innerHTML = 'some text'; collection.item(0).firstChild.appendChild(a); 

and simple HTML:

<html>     <head></head> <body>  </body> </html> 

Where is mistake?

like image 652
john Avatar asked Mar 13 '10 19:03

john


2 Answers

This should do what you are looking for:

    var newdiv = document.createElement("div");      newdiv.appendChild(document.createTextNode("some text"));      document.body.appendChild(newdiv);
<html>      <head></head>  <body>    </body>  </html>

First, you create the element by document.createElement. To set its text contents, you have to have a "text node" wrapping your text. So, you first create such text node and then add it as (the only) child to your new object.

Then, add your newly created DIV element to the DOM structure. You don't have to look for the BODY element with getElementsByTagName(), since it exists as a property of document object.

like image 172
naivists Avatar answered Sep 21 '22 18:09

naivists


Your code is failing because at the time you try to insert that brand new div, the body tag is empty, and therefore there's no firstChild to append anything to. Change your last line to:

collection.item(0).appendChild(a); 
like image 22
Marc B Avatar answered Sep 22 '22 18:09

Marc B