htmlNode.childNodes[i].nodeName中 #text 的JavaScript含义

JavaScript meaning of #text in htmlNode.childNodes[i].nodeName

本文关键字:#text JavaScript 含义 nodeName childNodes htmlNode      更新时间:2023-09-26

我是JavaScript的新手,当我玩DOM模型时,当我想显示HTML childNodes中的所有nodeName时,我感到困惑。当我有一个head标签时,有一个叫做 #textnodeName,当我删除完整的head标签时,有正常的头部身体nodeName#text 意味着什么nodeName尤其是当我有一个head标签时?

这是我的代码:

<html>
    <head>
    </head>
    <body>          
        <p id="p1">SOME TEXT</p>    
        <button type="button" onclick="javascript:changeNode()">Click </button>
        <script type="text/javascript">
        function changeNode() {
            var htmlNode = document.documentElement;                
            var anzahl = htmlNode.childNodes.length;
            var html_text = "<p>";
            for(var i = 0;i<anzahl;i++){
                html_text += " " + htmlNode.childNodes[i].nodeName +";";
            }
            html_text += "</p>";
            document.getElementById("p1").innerHTML = html_text;
        }
        </script>
    </body>
</html>

它的输出是(带有 head 标签):

头; #text;身体;

它的输出是(不带 head 标签):

头;身体;

节点名称 #text 是什么意思,尤其是当我有一个头标签时。

这些是您在标记中无意中引入的空换行符。

如果不想包含文本节点,请使用children而不是childNodes

元素

内的空格被视为 #text,文本被视为节点。删除 </head><body> 标记之间的空格,如下所示:

<html>
 <head></head><body>         
    <p id="p1">SOME TEXT</p>    
    <button type="button" onclick="javascript:changeNode()">Click </button>
 </body>

这将为您提供输出头部,身体