为了账号安全,请及时绑定邮箱和手机立即绑定

为什么输出的是#text#text 不应该是节点名字吗

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

正在回答

2 回答

nodeName 属性: 节点的名称,是只读的。

1. 元素节点的 nodeName 与标签名相同
2. 属性节点的 nodeName 是属性的名称
3. 文本节点的 nodeName 永远是 #text
4. 文档节点的 nodeName 永远是 #document

在除了ie浏览器中 你的con对象的内容其实是这样的

<div id="con">空白节点
  <div> <p>javascript</p>空白节点
  <div>jQuery</div>空白节点
  <h5>PHP</h5></div>空白节点
</div>

在非ie浏览器中会算上空白节点

这样就很好理解你为什么输出两个#text了 因为首 尾子节点都是空白节点

所以输出的是两个#text

3 回复 有任何疑惑可以回复我~
#1

闻风_

这里的空白节点 就是代表空的文本节点(用字符串表示就是“”)
2016-12-21 回复 有任何疑惑可以回复我~

建议使用firstElementChild和lastElementChild可排除空白节点

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么输出的是#text#text 不应该是节点名字吗

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信