Example
Get the HTML content of the first child node of an <ul> element:
var x = document.getElementById("myList").firstChild.innerHTML;
The result of x will be:
Coffee
Try it Yourself »
More "Try it Yourself" examples below.
Definition and Usage
The firstChild property returns the first child node of the specified node, as a Node object.
The difference between this property and firstElementChild, is that firstChild returns the first child node as an element node, a text node or a comment node (depending on which one's first), while firstElementChild returns the first child node as an element node (ignores text and comment nodes).
Note: Whitespace inside elements is considered as text, and text is considered as nodes (See "More Examples").
This property is read-only.
Tip: Use the element.childNodes property to return any child node of a specified node. childNodes[0] will produce the same result as firstChild.
Tip: To return the last child node of a specified node, use the lastChild property.
Browser Support
Property | |||||
---|---|---|---|---|---|
firstChild | Yes | Yes | Yes | Yes | Yes |
Syntax
node.firstChild
Technical Details
Return Value: | A Node object, representing the first child of a node, or null if there are no child nodes |
---|---|
DOM Version | Core Level 1 Node Object |
More Examples
Example
In this example, we demonstrate how whitespace may interfare with this property.
Get the node name of the first child node of a <div> element:
<!--
Whitespace inside elements is considered as text, and text is
considered as nodes
In this example, there is whitespace before <p>,
before <span> and after <span>
Therefore, the first child
node of <div> is a #text node, and not the <p> element you expected
-->
<div id="myDIV">
<p>Looks
like first child</p>
<span>Looks like last Child</span>
</div>
<script>
var x = document.getElementById("myDIV").firstChild.nodeName;
document.getElementById("demo").innerHTML = x;
</script>
The result of x will be:
#text
Try it Yourself »
Example
However, if we remove the whitespace from the source, there are no #text nodes in <div>, which will make the <p> element the first child node:
<div id="myDIV"><p>First child</p><span>Last Child</span></div>
<script>
var x = document.getElementById("myDIV").firstChild.nodeName;
document.getElementById("demo").innerHTML = x;
</script>
The result of x will be:
P
Try it Yourself »
Example
Get the text of the first child node of a <select> element:
var x = document.getElementById("mySelect").firstChild.text;
The result of x will be:
Audi
Try it Yourself »
Related Pages
HTML DOM reference: node.lastChild Property
HTML DOM reference: node.childNodes Property
HTML DOM reference: node.parentNode Property
HTML DOM reference: node.nextSibling Property
HTML DOM reference: node.previousSibling Property
HTML DOM reference: node.nodeName Property