为什么取到的第一个子节点是文本属性?

来源:9-9 访问子节点的第一和最后项

宝慕林6291606

2018-12-19 15:25

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
</head>
<body>
<div id="con">
  <p>javascript</p>
  <div>jQuery</div>
  <h5>PHP</h5>
</div>
<script type="text/javascript">
  var x=document.getElementById("con");
        //document.write(x.firstChild.nodeName);
        document.write(x.firstChild.nodeValue);
        document.write(x.firstChild.nodeName);
        document.write(x.childNodes[0].nodeName);
        document.write(x.childNodes[0].nodeValue);
        //document.write(x.lastChild.nodeName);
        document.write(x.lastChild.nodeValue);
</script>
</body>
</html>

第一个子节点不是<p>javascript</p>吗?为什么
        document.write(x.firstChild.nodeName)==#text;
        document.write(x.firstChild.nodeValue)=="";


写回答 关注

3回答

  • 狼王梦0_0
    2019-08-19 14:55:25

    前面章节不是说了是有空白节点吗,请认真对待每一个章节

  • 慕莱坞3557718
    2018-12-26 21:05:58

    因为节点之间的空白符,前面章节有说过,如果你用的是火狐或者谷歌输出文本属性那肯定是无疑问的了,可能会问前面不是说,在firefox、chrome、opera、safari浏览器是文本节点吗,IE不是啊,可能老版本的IE可能会输出P,现在高版本的IE,节点间的空白符也是文本节点了,你可以测试节点个数,就知道了

  • 宝慕林6291606
    2018-12-19 16:16:07

    有空白节点。。。

JavaScript进阶篇

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

468060 学习 · 21891 问题

查看课程

相似问题