我对 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
return null
forelement node
和“nothing” fortext node
吗?
编辑: 这里很好地描述了有关空白的内容: https ://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Whitespace_in_the_DOM