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

为什么文本节点的值为空?

为什么除了第一个出现了javascript,后面都是空白?

子节点名称为:#text
子节点值为: javascript 
子节点类型为:3

子节点名称为:P
子节点值为:null
子节点类型为:1

子节点名称为:#text
子节点值为: 
子节点类型为:3

子节点名称为:DIV
子节点值为:null
子节点类型为:1

子节点名称为:#text
子节点值为: 
子节点类型为:3

子节点名称为:H5
子节点值为:null
子节点类型为:1

子节点名称为:#text
子节点值为: 
子节点类型为:3

正在回答

1 回答

除了IE之外,其他浏览器在检测childNodes属性时,都会输出7个节点。

另外,当循环到第二个节点时,该节点为属性节点<p></p>。属性节点的文本节点为null.  可以检测一下console.log(typeof undefined ==null)  //返回true .  但是浏览器都输出文本节点的属性为null .

当循环到第三个节点时,该节点为文本节点 #text.其实就是<div>与</p>那个空白区域(因为你敲了回车键,产生了空白区域) 那空白区域的文本属性nodeValue当然等于空。

以此类推 ,body里面就有三个属性节点 ,   四个文本节点,其中有一个的nodevalue=javascript  其他三个的nodeValue="" 

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

Eason_Mar 提问者

明白了几点: 1.访问子节点,返回的是“儿辈”节点,对于“孙辈”节点(例如p里面的javascript文本节点)是不访问的; 2.节点之间常常藏了一个空白区域文本节点(那么问题就来了,javascript与<p>之间呢?思考:因为javascript本来就是文本,所以即使javascript与<p>之间有空隙,那么这个文本节点就是“javascript + 空隙”,实际看到的value还是javascript) 3.学习了console.log(typeof undefined ==null)
2016-03-11 回复 有任何疑惑可以回复我~
#2

ry836478606

三个元素节点,4个文本节点
2016-03-27 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么文本节点的值为空?

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