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?
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.
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);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With