首页 > 编程语言 >Javascript(笔记24) - DOM基本操作 - 遍历元素节点树的方法

Javascript(笔记24) - DOM基本操作 - 遍历元素节点树的方法

时间:2022-11-07 21:34:13浏览次数:33  
标签:24 返回 遍历 DOM 元素 children 基本操作 div 节点

Javascript(笔记24) - DOM基本操作 - 遍历元素节点树的方法

上一节讨论了遍历节点,这一节讨论遍历元素节点,毕竟元素节点才是我们操作最为频繁的。

使用方法跟遍历节点的非常相似:

parentElement      -->  返回父元素节点
children --> 返回子元素节点
firstElementChild --> 返回第一个元素节点
lastElementChild --> 返回最后一个元素节点

遍历元素节点

parentElement

返回当前元素的父元素节点(IE不兼容)

parentNode 是返回当前元素的父节点;

parentElement 是返回当前元素的父元素节点,父元素节点只有一个;

看下HTML

<div>
<!-- this is commet -->
<strong></strong>
<span></span>
</div>

先取得 div:

var div = document.getElementsByTagName("div")[0];

看控制台:

Javascript(笔记24) - DOM基本操作 - 遍历元素节点树的方法_javascript

当前 div 对象父级就是 body 了,再向上取呢? 

Javascript(笔记24) - DOM基本操作 - 遍历元素节点树的方法_javascript_02

再向是  html ,再向上就是 null 了。 



children

只返回当前元素的元素子节点

childNodes 是返回当前元素的子节点;

children 是返回当前元素的元素子节点;

<div>
<!-- this is commet -->
<strong></strong>
<span></span>
</div>

children 算的是元素之节点:

var div = document.getElementsByTagName("div")[0];

控制台输出:

Javascript(笔记24) - DOM基本操作 - 遍历元素节点树的方法_遍历元素元素节点_03

这次必然是2个了,已经文本节点和注释节点,都不算元素节点。

元素节点只有 strong 和 span 了。 


node.childElementCount

这个属性和  node.children.length 效果一样;

这个属性和 children.length 的效果一样,就可以跳过了,记不记都行。

Javascript(笔记24) - DOM基本操作 - 遍历元素节点树的方法_遍历元素元素节点_04


firstChild lastChild 分别是返回第一和最后的节点;

firstElementChild lastElementChild 分别是返回第一和最后的元素节点:


firstElementChild

返回的是第一个元素节点(IE不兼容)

还用上面的HTML结构:

<div>
<!-- this is commet -->
<strong></strong>
<span></span>
</div>

JS获取 div : 

var div = document.getElementsByTagName("div")[0];

控制台获取第一个元素节点:

Javascript(笔记24) - DOM基本操作 - 遍历元素节点树的方法_javascript_05

lastElementChild

返回的是最后一个元素节点(IE不兼容)

var div = document.getElementsByTagName("div")[0];

获取最后一个元素节点:

Javascript(笔记24) - DOM基本操作 - 遍历元素节点树的方法_javascript_06


nextSilbing  previousSibling 分别是获取下一个和上一个兄弟节点;

nextElementSiling previousElementSibling 分别是获取下一个和上一个兄弟元素节点;


nextElementSibling

返回的是下一个(后一个)兄弟元素节点(IE不兼容)

还用上面的HTML结构:

<div>
<!-- this is commet -->
<strong></strong>
<span></span>
</div>

JS获取 strong: 这次不是 div 了,是div 里的 strong.

var strong = document.getElementsByTagName("strong")[0];

控制台获取下一个兄弟元素节点:

Javascript(笔记24) - DOM基本操作 - 遍历元素节点树的方法_元素节点_07

previousElementSibling

返回的是上一个(前一个)兄弟元素节点(IE不兼容)

控制台输出:

Javascript(笔记24) - DOM基本操作 - 遍历元素节点树的方法_遍历元素元素节点_08

strong 下一个兄弟元素节点的上一个兄弟元素节点,就是它自己。 


遍历节点的方法浏览器都普遍兼容了,

遍历元素节点的方法,在IE系列的浏览器不能很好的兼容,但目前不存在了。


开发中用的比较多的还是  childNodes  children  ,因为其他方法都可以用 get 系列方法获得。


标签:24,返回,遍历,DOM,元素,children,基本操作,div,节点
From: https://blog.51cto.com/ahuiok/5831408

相关文章

  • Javascript(笔记23) - DOM基本操作 - 遍历节点树的方法
    Javascript(笔记23)-DOM基本操作-遍历节点树DOM的节点可以形成一个类型树的结构遍历节点树节点的类型上图看的是HTML的结构,主要指的是元素节点,但在DOM结构里,节点可不止......
  • mongodb基本操作合集
    创建管理员账号useadmindb.createUser({user:"root",pwd:"xxxxxx",roles:[{role:"root",db:"admin"}]})其他库创建账号......
  • React源码中的dom-diff
    这一章就来讲讲React在协调阶段的beginWork里面主要做的事情--domdiff。本文主要讲的是React17.0.2版本的diff,在此我也画了一个简单的流程图:reconcileChildrendomd......
  • 024 通过链表学Rust之非安全方式实现链表2
    介绍视频地址:https://www.bilibili.com/video/av78062009/相关源码:https://github.com/anonymousGiga/Rust-link-list详细内容本节实现剩余的迭代器、Drop等。IntoIter实现......
  • react react-router-dom6 mobx6整理
    reactreact-router-domv6route/index.jsimportReact,{Suspense,lazy}from'react'importLayoutfrom'../views/Layout/index'constHome=lazy(()=>......
  • 【Tensorflow】结果可复现设置-随机种子设置(Random Seed)
    目录引言设置引言在进行深度学习实验的时候,可能经常会发现,虽然输入的数据都是一样的,但是输出的结果总是会有不同的波动,这主要是由于在神经网络中,很多网络层参数的初始化......
  • xml.dom import minidom
    https://blog.csdn.net/hju22/article/details/85111071>>>fromxml.domimportminidom>>>root=dom.documentElement>>>names=dom.getElementsByTagName("loc")>......
  • C++ get random via random_device, mt19937_64,uniform_int_distribution, quick so
    #include<chrono>#include<ctime>#include<fstream>#include<iostream>#include<random>#include<sstream>#include<thread>#include<unistd.h>#include......
  • P2824 [HEOI2016/TJOI2016]排序
    P2824[HEOI2016/TJOI2016]排序题目大意这个难题是这样子的:给出一个\(1\)到\(n\)的排列,现在对这个排列序列进行\(m\)次局部排序,排序分为两种:0lr表示将区间\(......
  • [哈希]leetcode242. 有效的字母异位词
    题目给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词。注意:若 s和t 中每个字符出现的次数都相同,则称 s和t 互为字母异位词。示例 1:输入:......