JavaScript 文本节点属性
JavaScript text nodes properties
我对 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 for text nodes is the text itself",但我得到这个输出:
3: #text:
1: DIV: null
3: #text:
1: UL: null
3: #text:
你能解释一下为什么 nodeValue
returns null
用于 element node
和 "nothing" 用于 text node
吗?
编辑:
关于空格的内容在这里得到了很好的描述:
https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Whitespace_in_the_DOM
这就是 nodeValue
根据 specification 所做的,它 returns 这个
Comment - content of the comment
Document - null
DocumentFragment - null
DocumentType - null
Element - null
NamedNodeMap - null
EntityReference - null
Notation - null
ProcessingInstruction - entire content excluding the target
Text - content of the text node
请注意,它 returns null
对于任何 但是 评论,文本节点和处理指令,对于所有其他节点类型 null
是明确的返回。
获取Element节点的文本内容,使用textContent
(innerText
for older IE),获取Element节点的HTML,使用innerHTML
why nodeValue returns null
for element node
因为 element nodes 没有值。他们基本上只有名字、属性和children.
…and "nothing" for text node?
它return 对你有用:那些元素节点之间的空白。
我对 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 for text nodes is the text itself",但我得到这个输出:
3: #text:
1: DIV: null
3: #text:
1: UL: null
3: #text:
你能解释一下为什么 nodeValue
returns null
用于 element node
和 "nothing" 用于 text node
吗?
编辑: 关于空格的内容在这里得到了很好的描述: https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Whitespace_in_the_DOM
这就是 nodeValue
根据 specification 所做的,它 returns 这个
Comment - content of the comment
Document - null
DocumentFragment - null
DocumentType - null
Element - null
NamedNodeMap - null
EntityReference - null
Notation - null
ProcessingInstruction - entire content excluding the target
Text - content of the text node
请注意,它 returns null
对于任何 但是 评论,文本节点和处理指令,对于所有其他节点类型 null
是明确的返回。
获取Element节点的文本内容,使用textContent
(innerText
for older IE),获取Element节点的HTML,使用innerHTML
why nodeValue returns
null
for element node
因为 element nodes 没有值。他们基本上只有名字、属性和children.
…and "nothing" for text node?
它return 对你有用:那些元素节点之间的空白。