JavaScript 文本节点属性



我对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 说明:"文本节点的节点值是文本本身">,但我得到的是这个输出:

3: #text: 
1: DIV: null
3: #text: 
1: UL: null
3: #text: 

你能解释一下为什么nodeValue element node回报nulltext node"什么都没有"吗?

编辑:关于空格的东西在这里得到了很好的描述:https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Whitespace_in_the_DOM

这就是

nodeValue根据规范所做的,它返回这个

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

请注意,对于显式返回的所有其他节点类型,为除注释、textNode 和处理指令之外的任何内容返回null null

若要获取元素节点的文本内容,请使用 textContent(innerText 对于较旧的 IE(,若要获取元素节点的 HTML,请使用 innerHTML

为什么节点值返回元素节点的null

因为元素节点没有值。它们基本上只有一个名字、属性和子项。

。和文本节点的"无"?

它确实会返回一些东西:这些元素节点之间的空格。

相关内容

  • 没有找到相关文章

最新更新