JS获取子节点、父节点和兄弟节点的方法总结


一、通过标签的属性值获取后代节点

 

方法 依据属性 兼容性 其他
getElementById id

兼容性好,推荐使用

如果存在多个id相同的元素,只会返回第一个

getElementsByTagName 标签名 不兼容ie8及以下版本  返回所有符合条件的元素的集合
getElementsByName name 不兼容ie8及以下版本  返回所有符合条件的元素的集合
getElementsByClassName class 不兼容ie8及以下版本 返回所有符合条件的元素的集合

二、js获取子节点的方式

 属性  作用 其他
childNodes 获取所有子节点 不推荐使用,如果有空格,会作为文本节点获取到
children 获取所有子节点 推荐使用
firstChild 获取首个子节点 推荐使用
lastChild 获取最后一个子节点 推荐使用

这四个属性都不存在兼容性问题,除了childNodes之外都是比较好用的。

childNodes:返回的是子节点的集合,是一个数组的格式。他会把换行和空格也当成是节点信息。

利用children来获取子元素是最方便的,他也会返回出一个数组。对其获取子元素的访问只需按数组的访问形式即可。

firstChild来获取第一个子元素,但是在有些情况下我们打印的时候会显示undefined,这是什么情况呢??其实firstChild和childNodes是一样的,在浏览器解析的时候会把他当换行和空格一起解析,其实你获取的是第一个子节点,只是这个子节点是一个换行或者是一个空格而已。那么不要忘记和childNodes一样处理呀。

6. firstElementChild获取第一个子节点

使用firstElementChild来获取第一个子元素的时候,这就没有firstChild的那种情况了。会获取到父元素第一个子元素的节点 这样就能直接显示出来文本信息了。他并不会匹配换行和空格信息。

lastChild获取最后一个子节点的方式其实和firstChild是类似的。同样的lastElementChild和firstElementChild也是一样的。不再赘余。

 三、js获取父节点的方式

parentNode获取父节点

获取的是当前元素的直接父元素。parentNode是w3c的标准。

var p = document.getElementById("test").parentNode;

parentElement获取父节点

parentElement和parentNode一样,只是parentElement是ie的标准。

offsetParent获取所有父节点

一看offset我们就知道是偏移量 其实这个是于位置有关的上下级 ,直接能够获取到所有父亲节点, 这个对应的值是body下的所有节点信息。

 

、js获取兄弟节点的方式

 

获取上一个兄弟节点

在获取前一个兄弟节点的时候可以使用previousSibling和previousElementSibling。他们的区别是previousSibling会匹配字符,包括换行和空格,而不是节点。previousElementSibling则直接匹配节点。

var brother2 = document.getElementById("test").previousElementSibling;

var brother3 = document.getElementById( "test" ).previousSibling;

获取下一个兄弟节点

同previousSibling和previousElementSibling,nextSibling和nextElementSibling也是类似的。

var brother4 = document.getElementById("test").nextElementSibling;

var brother5 = document.getElementById( "test" ).nextSibling;


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM