JavaScript のテキスト ノードのプロパティについて少し混乱しています。次の html があるとします。
<html lang="en-US">
<head>
<title>JavaScript test</title>
<script type="text/javascript" src="test.js"></script>
</head>
<body onload="load()">
<div>
<p>Paragraph 1</p>
<p>Paragraph 2</p>
</div>
<ul>
<li>1.</li>
<li>2.</li>
</ul>
</body>
そしてonload()
機能:
function load()
{
var bodyChildren = document.childNodes[0].childNodes;
for(var i = 0; i < bodyChildren.length; i++)
{
alert(bodyChildren[i].nodeType
+ ": " + bodyChildren[i].nodeName
+ ": " + bodyChildren[i].nodeValue);
}
}
このhttp://www.w3schools.com/js/js_htmldom_navigation.aspは、「テキストノードの nodeValue はテキスト自体です」と伝え ていますが、次の出力が得られます。
3: #text:
1: DIV: null
3: #text:
1: UL: null
3: #text:
nodeValue
が返さnull
れelement node
、 が「何もない」理由を説明できますtext node
か?
編集: 空白については、ここでうまく説明されています: https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Whitespace_in_the_DOM