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:
Click the button to get the node name of the DIV's first child node.
<!DOCTYPE html> <html> <head> <style> div {/* www .j av a 2 s . c om*/ border: 1px solid black; margin: 15px; } </style> </head> <body> <div id="myDIV"><p>A P element - First child in div</p><span>A Span element - Last child in div</span></div> <button onclick="myFunction()">Test</button> <p id="demo"></p> <script> function myFunction() { var x = document.getElementById("myDIV").firstChild.nodeName; document.getElementById("demo").innerHTML = x; } </script> </body> </html>