当前位置:网站首页>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>
边栏推荐
- Cholesterol-PEG-Thiol CLS-PEG-SH 胆固醇-聚乙二醇-巯基
- Pytorch study notes 7 - processing input of multi-dimensional features
- Unity软件中UGUI和NGUI的多语言开发
- Cholesterol-PEG-DBCO Cholesterol-Polyethylene Glycol-Diphenylcyclooctyne Chemical Reagent
- 自己设置的私密文件,在哪找
- PyTorch Study Notes 08 - Loading Datasets
- CSDN上markdown编写的一些便捷操作
- 数据分析之SQL面试真题
- 链表理论基础
- VS2019配置配置项目属性自定义输出目录与中间目录
猜你喜欢
哈希表基础
mPEG-DMPE 甲氧基-聚乙二醇-双肉豆蔻磷脂酰乙醇胺用于形成隐形脂质体
Unity Text一个简单的输入特效
CAS: 1403744-37-5 DSPE-PEG-FA Phospholipid-Polyethylene Glycol-Folic Acid for Scientific Research
[Solved] ssh connection report: Bad owner or permissions on C:\\Users/XXX/.ssh/config
什么样的人不适合入行编程?你真的适合学习编程吗?
科研试剂Cholesterol-PEG-Maleimide,CLS-PEG-MAL,胆固醇-聚乙二醇-马来酰亚胺
Cholesterol-PEG-DBCO 胆固醇-聚乙二醇-二苯基环辛炔化学试剂
能否更上一层楼?探究 CMake 争论
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
Cholesterol-PEG-Amine CLS-PEG-NH2 胆固醇-聚乙二醇-氨基科研用
2021-09-30
超详细!!!让你了解冒泡排序的底层逻辑和思想
Learn how to get a database connection with JDBC
map和set
Cholesterol-PEG-DBCO Cholesterol-Polyethylene Glycol-Diphenylcyclooctyne Chemical Reagent
Evaluating Machine Learning Models - Excerpt
Detailed explanation of mysql transaction principle
The content of the wangeditor editor is transferred to the background server for storage
Image binarization processing of opencv
IDEA概述和安装及调试
vs2022 xlua 集成第三方库编译报错Generator Visual Studio 15 2017 could not find any instance of Visual Studio.
浏览器中的画中画(Picture-in-Picture)API
钉钉企业内部-H5微应用开发
Session和Cookie,Token
[已解决]ssh连接报:Bad owner or permissions on C:\\Users/XXX/.ssh/config
力扣.两数之和/四数相加||
这些数组技巧,我爱了
Cholesterol-PEG-NHS NHS-PEG-CLS cholesterol-polyethylene glycol-active ester can modify small molecular materials