当前位置:网站首页>DOM操作-通过关系来获取元素
DOM操作-通过关系来获取元素
2022-07-31 05:18:00 【春意迟迟、】
可以通过父子关系来获取父元素和子元素,也可以通过兄弟关系来获取同级元素
- 获取父元素:parentElement
- 获取父节点:parentNode
- 获取子元素:children
- 获取子节点:childrenNode
- 获取第一个子节点:firstElementChild
- 获取第一个子节点:lastElementChild
- 获取上一个兄弟节点:previousSibling
- 获取下一个兄弟节点:nextElementSibling
<body> <div class="div1" id="div11"> <span id="span1" class="span11">span标签</span> <div id="son1">son1</div> <div class="son2">son2</div> </div> <!-- 特意将div2和div3写在同一行 --> <div id="div2">02</div><div class="div3">03</div> </body> <script> //获取span标签的父元素(parentElement) var spanFarther=document.getElementById("span1").parentElement console.log(spanFarther)//打印的是div1整个标签的结构 //获取div2的父节点 var div2farNode=document.getElementById("div2").parentNode console.log(div2farNode)//打印的是body整个标签的结构 //获取div11的子元素(children) var div11Son=document.getElementById("div11").children console.log(div11Son) //[span#span1.span11, div#son1, div.son2, span1: span#span1.span11, //son1: div#son1] //获取第一个子元素: var div1FirSon=document.querySelector(".div1").firstElementChild console.log(div1FirSon)//<span id="span1" class="span11">span标签</span> //获取最后一个子元素: var div1LaSon=document.querySelector(".div1").lastElementChild console.log(div1LaSon)//<div class="son2">son2</div> //获取div11的子节点(childNodes) var div11SonNode=document.getElementById("div11").childNodes console.log(div11SonNode) //[text, span#span1.span11, text, div#son1, text, div.son2, text] //获取第一个子节点: var div1FirSonNode=document.querySelector(".div1").firstChild console.log(div1FirSonNode)//#text //获取最后一个子节点: var div1LaSonNode=document.querySelector(".div1").lastChild console.log(div1LaSonNode)//#text //获取上一个兄弟元素 var son2Pre=document.querySelector(".son2").previousSibling console.log(son2Pre)//#text //获取下一个兄弟元素 var div2Next=document.querySelector("#div2").nextElementSibling console.log(div2Next)//<div class="div3">03</div> </script>
注意:
父元素和父节点是同一个,但子元素和子节点可能不是同一个。(子元素是元素里面的标签,子节点不仅包含里面的标签,还包含不相连标签之间的文本text)。
只有页面上的节点对象才有子元素,数据容器(类数组、数组、集合等)是没有子元素这个说法的。通过方法获取元素时,有些方法返回值是类数组,类数组再调用关系来获取元素是不行的,返回值为undefined。例如(标签结构同上):
<script> //获取span标签的父元素(parentElement) var spanFarther=document.getElementById("span1").parentElement console.log(spanFarther)//返回标签结构 //此处的getElementsByClassName()方法返回值为类数组 var spanFarther=document.getElementsByClassName("span11").parentElement console.log(spanFarther)//undefined var spanFarther=document.querySelector(".span11").parentElement console.log(spanFarther)//返回标签结构 </script>
获取自己是父元素中的第几个子元素/节点:
自己在原型上添加这个方法:
<script> Object.prototype.index2 = function () { console.log(this) var arr = this.parentElement.childNodes for (let i = 0; i < arr.length; i++) { if (this == arr[i]) { return i } } } var index = document.getElementById("box4").index2() console.log(index) </script>
获取父元素中的第n个子元素/子节点:(children[n-1] / childrenNode[n-])
<script> var son1 = document.getElementById("box").children[1]//第二个子元素 var son2 = document.getElementById("box").childNodes[1]//第二个子节点 </script>
边栏推荐
- The array technique, my love
- 顶级程序员都是怎么做的?
- ImportError: cannot import name ‘Xxxx‘ from partially initialized module ‘xx.xx.xx‘
- Cholesterol-PEG-DBCO 胆固醇-聚乙二醇-二苯基环辛炔化学试剂
- Cholesterol-PEG-NHS NHS-PEG-CLS cholesterol-polyethylene glycol-active ester can modify small molecular materials
- 力扣.两数之和/四数相加||
- Remote file xxx is mapped to the local path xxx and can't be found. You can continue debugging....
- MW: 3400 4-Arm PEG-DSPE four-arm-polyethylene glycol-phospholipid a saturated 18-carbon phospholipid
- cenos7安装cmake-3.22.2
- mobaxterm 编码问题解决
猜你喜欢
Software Testing Interview Questions 2021
堆和栈的区别
Cholesterol-PEG-NHS NHS-PEG-CLS cholesterol-polyethylene glycol-active ester can modify small molecular materials
学习JDBC之获取数据库连接的方式
小型网站组建(ENSP)
Getting Started with MySQL: The Case Statement Works Well
Remote file xxx is mapped to the local path xxx and can‘t be found. You can continue debugging....
WIN10,配置adb环境
浅谈音视频开发入门基础及进阶资源分享
2021-09-30
随机推荐
记一次QT 2D 画图 实现3D动态效果
力扣.字母异位词分组
Detailed explanation of mysql transaction principle
Use usb_cam to open multiple cameras at the same time
力扣.找到打字符串中所有字母异位词
cenos7配置IP,配置IP不生效
Tensorflow steps on the pit while using it
Evaluating Machine Learning Models - Excerpt
911崩了,自养号测评环境IP有哪些更好的选择
UE5 最新动态虚幻引擎全新版本引爆互联网
顶级程序员都是怎么做的?
mPEG-DSPE 178744-28-0 Methoxy-polyethylene glycol-phosphatidylethanolamine linear PEG phospholipids
DingTalk H5 micro-app login authentication
VRchat_udon脚本介绍:傻瓜式教程教你如何实现VRchat地图的功能
钉钉H5微应用免登鉴权
IDEA概述和安装及调试
DSPE-PEG-Azide DSPE-PED-N3 Phospholipid-Polyethylene Glycol-Azide Lipid PFG
VS2019配置配置项目属性自定义输出目录与中间目录
UR3机器人运动学分析之逆运动学分析
[已解决]ssh连接报:Bad owner or permissions on C:\\Users/XXX/.ssh/config