parentelement
首先了解parentNode,parentelement,childNodes,children四大属性之前,必须对Dom树有一定的了解,在Dom文档结构中,HTML页面每一部分都是由节点组成的,节点的类型一共有3种,元素节点,文本节点,属性节点,从图中可以看出属性节点属于元素节点的分支,一般不常考虑,
下来详细介绍,childNodes,childern,
childNodes指的是返回当前元素子节点的所有类型节点,其中连空格和换行符都会默认文本节点,
代码如下
打印结果:
其中空格和文本均打印为文本节点,这里有一个重点要说明一下!!!
之前说childNodes返回的是所有节点的数组,但是如果我给你li元素添加属性会发现元素的长度总长度并没有改变,也就是说在childNodes只会返回文本和元素的节点,并不能返回属性节点!!!
childern指的是返回当前元素的所有元素节点,代码如下
执行代码如下:
children很直观的反应了返回元素节点的属性。
接下来讲解:parentNode,parentElement,
parentNode:顾名思义-父节点
parentElement:顾名思义-父元素
两者在通常情况下都是一样的,因为包含元素的节点只有可能是元素节点,这里可能会有一个误区,有些人可能会想文本节点是否可以包含元素节点,来作为父节点,这里是不行的,文本节点只是文本本身,自身算一个节点,文本节点的父节点直接是元素节点。
那下面我们就说一下,parentNode,parentElement,的特例,
这里运行结果是一致的,他们的祖宗元素都是HTML,但是我们试着想一下,再往上一层,就是根部document了,并不是元素,我们可以一起来看一下下面的代码
执行代码如下:
这里的唯一区别就出来了,因为parentElement找的是元素,因此当找到根部document时候就是出现值为null的报错,而且parentNode找的是节点,当然就可以显示出来了!
以上是博主对Dom这四个原生的属性通过阅读网上的博客和文章总结出来的,希望可以帮助到正在学习javascript道路上的伙伴!!!
相关阅读
一直以为offsetParent和parentElement是一回事,最近在做web控件才发现原来的理解是大错特错。parentElement 在msdn的解释是Retrie
offsetParent 指与位置有关的上级元素 只读parentNode 指与位置无关的上级元素 只读 offsetParent直接的将是影响元素位
深度剖析offsetParent、offsetTop、offsetLeft和Paren
深度剖析offsetParent、offsetTop、offsetLeft和ParentNode的区别 ParentNode:是直接结构上的父级,并不是显示父级offsetParent:有
event.srcElement.parentElement的用法
用event.srcElement.parentElement可以获取当前操作对象的父级对象看下代码:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Trans
JavaScript之childNodes 和 children 区别
1、先让我们来看看childNodes的用法,以及是如何计算节点数量: 为什么输出是7而不是3呢?原来Internet Explorer 会忽略节点之间生