parentNode,parentElement,childNodes,children的区别
2017-10-11 13:35
525 查看
从字面上我们可以知道一个是parent的节点,一个是parent的元素,实际上在很多时候它们的返回的内容是相同的,比如有这么一段代码:
此时我们我们打印出来的结果是相同的
![](https://oscdn.geek-share.com/Uploads/Images/Content/201710/375b8ae39bdab94d3f72a10dcd7197cb)
但是如果我们继续往上查找父级
最终我们看到这样的结果
![](https://oscdn.geek-share.com/Uploads/Images/Content/201710/f35fc7f15ecb657822e94caa8ac8e681)
因此我们知道parentElement查找的是父级元素,如果有返回元素节点,否则返回null,而parentNode此时返回的是document节点
这里的childNodes返回的是子节点,其中包括空格,换行,元素,而children则返回的是子元素
![](https://oscdn.geek-share.com/Uploads/Images/Content/201710/f85ad2c33bb8bc5d8e2d1eac5af749f8)
我们可以通过nodeValue更直观的查看打印的内容,注意:元素节点没有nodeValue
![](https://oscdn.geek-share.com/Uploads/Images/Content/201710/5e5d35ab1f90025f4e240dd9be279794)
我们通过选中部分可以看出这里打印包括空格和换行,而元素节点的nodeValue则为null
其中
节点树:
父子关系:
parentNode, childNode, firstChild, lastChild
兄弟关系:
previousSibling, nextSibling
元素树:
父子关系:
parentElement, children, firstElementChild, lastElementChild
兄弟关系:
previousElementSibling, nextElementSibling
这些规则和上述内容都是相同的
<!DOCTYPE html> <html> <head> <title>节点</title> </head> <body> <ul> <li id="item1">item1 <ul> <li>item i</li> <li>item ii</li> <li>item iii</li> </ul> </li> <li>item2</li> <li>item3</li> </ul> <script> var item1 = document.getElementById('item1'); console.log(item1.parentNode); console.log(item1.parentElement); </script> </body> </html>
此时我们我们打印出来的结果是相同的
但是如果我们继续往上查找父级
<script> console.log(item1.parentNode.parentNode.parentNode.parentNode); console.log(item1.parentElement.parentElement.parentElement.parentElement); </script>
最终我们看到这样的结果
因此我们知道parentElement查找的是父级元素,如果有返回元素节点,否则返回null,而parentNode此时返回的是document节点
<script> console.log(item1.childNodes); console.log(item1.children); </script>
这里的childNodes返回的是子节点,其中包括空格,换行,元素,而children则返回的是子元素
我们可以通过nodeValue更直观的查看打印的内容,注意:元素节点没有nodeValue
<script> console.log(item1.childNodes[0].nodeValue); console.log(item1.children[0].nodeName); </script>
我们通过选中部分可以看出这里打印包括空格和换行,而元素节点的nodeValue则为null
其中
节点树:
父子关系:
parentNode, childNode, firstChild, lastChild
兄弟关系:
previousSibling, nextSibling
元素树:
父子关系:
parentElement, children, firstElementChild, lastElementChild
兄弟关系:
previousElementSibling, nextElementSibling
这些规则和上述内容都是相同的
相关文章推荐
- Js-parentNode、parentElement,childNodes、children 的区别
- Js-parentNode、parentElement,childNodes、children 它们有什么区别呢?
- Js-parentNode、parentElement,childNodes、children 它们有什么区别呢?
- Js-parentNode、parentElement,childNodes、children 它们有什么区别呢?
- JavaScript 之 parentNode、parentElement,childNodes、children
- Js中parentNode,parentElement,childNodes,children之间的区别
- parentNode、parentElement,childNodes、children 它们有什么区别呢?
- Js中parentNode,parentElement,childNodes,children之间的区别
- offsetParent与parentElement ,parentNode,parentElement,childNodes和children
- offsetParent与parentElement ,parentNode,parentElement,childNodes和children
- parentNode、parentElement,childNodes、children 区别
- parentNode、parentElement,childNodes、children 之间的区别?
- js.parentNode,parentElement、childNodes、children 区别
- Js中parentNode,parentElement,childNodes,children之间的区别
- javascript——DOM之childNodes、nodeType、children、parentNode
- Element与Node的区别,children与childNodes的区别
- javascript中childNodes与children的区别
- childNodes和children的区别
- [HTML DOM]offsetParent、parentNode、parentElement 三者区别
- JavaScript中Element与Node的区别,children与childNodes的区别