我的打印出来为什么有7个子节点?

来源:9-8 访问子节点childNodes

ningshiyang

2016-05-07 15:49

代码:

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>ChildNodes</title>

</head>

<body>

<div>

  javascript  

  <p>javascript</p>

  <div>jQuery</div>

  <h5>PHP</h5>

</div>

<script type="text/javascript">

 var div_child=document.getElementsByTagName("div")[0].childNodes;

 for(var i=0;i<div_child.length;i++){

document.write("第"+(i+1)+"个子节点的类型:"+div_child[i].nodeType+"<br>");

}

</script>

</body>

</html>

结果:

第1个子节点的类型:3
第2个子节点的类型:1
第3个子节点的类型:3
第4个子节点的类型:1
第5个子节点的类型:3
第6个子节点的类型:1
第7个子节点的类型:3

写回答 关注

2回答

  • 慕粉3170703
    2016-05-11 09:29:43

    在<div>与第一个标签之间的内容算是第一个节点(包括空白和文本),所以<div>之后的所有空白和JavaScript以及之后的回车空白都算一个节点。即

    <div>之后一个“空白+JavaScript+空白”一个节点。

    接着<p>javascript</p>一个节点,然后空白节点。

    <div>jQuery</div>一个元素节点,然后空白节点。 

    <h5>PHP</h5>一个元素节点,然后空白节点。

    总共7个。

    *若把第一个文本内容JavaScript改成<p>JavaScript</p>则一共会有9个节点。即

    <div>之后一个空白节点,

    <p>JavaScript</p>一个元素节点,后面一个空白节点。

    接着<p>javascript</p>一个节点,然后空白节点。

    <div>jQuery</div>一个元素节点,然后空白节点。 

    <h5>PHP</h5>一个元素节点,然后空白节点。

    总共9个。


  • 几何途行
    2016-05-07 17:09:05

    <div>

      javascript  这是第1个节点nodeType为3是#text类型

      <p>javascript</p> <p>javascript</p>这是第2个节点nodeType为1是元素类型

     <p>和<div>两个标签之间虽然是空文本 但也算一个子节点 因为这里也可以插入文本 这是第3个节点nodeType为3是元素类型 ,  在下面的<div>和<h5>之间也有一个空文本子节点  ,<h5>和</div> 之间也有

      <div>jQuery</div>

      <h5>PHP</h5>

    </div>


JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468061 学习 · 21891 问题

查看课程

相似问题