当前位置:网站首页>DOM树的遍历-----修改样式,选择元素,创建和删除节点
DOM树的遍历-----修改样式,选择元素,创建和删除节点
2022-08-11 02:31:00 【(-^_^-)】
DOM树具有以下三种节点;
元素节点:html标签---可以有子节点或属性
文本节点:块元素中的文本---始终作为元素节点的子节点出现,不可以有子节点或属性
属性节点:属性/值---不可以有子节点或属性,绘制DOM树时候通常不显示
每个DOM节点具有以下属性:
firstchild——这一节点的子节点列表中的开始节点
lastChild——这一节点的子节点列表中的结束节点
childNodes——这一节点的所有字节点数组
nextSibling——这一节点的之后的紧跟的节点(具有相同父节点)
previousSibling——这一节点的之前的紧跟的节点(具有相同父节点)
parentNode——这一节点的父节点
实际分析


如何修改使用var a.firstchildnextsibling.firstchild.textcontent="footbal"(修改了p节点的第一个子节点的下一个节点的第一个字节点即文本节点的文本内容)
问题下面的id=fo的元素节点有几个孩子:

答案:3个 段落之前:\n\t的文本节点 p元素节点 \n文本节点
如何选择元素组
”全局文档-文档对应的是对象--相关的方法
getElementById()----------根据ID选择DOM对象
getElementsByName()——根据指定名称选择DOM对象
getElementsByTagName()——根据标签名选择DOM对象
querySelector()——根据匹配指定的CSS选择器的第一元素选择DOM对象
querySelectorAll()——文档中匹配的CSS选择器的所有元素节点列表
点击 查找文本并设置样式(通过CSS的样式 )
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>网页</title>
<script src="js/e.js" type="text/javascript"></script>
<style>
.highlighted{
background-color: yellow;
border: 1px dashed #666600;
font-weight: bold;
}
</style>
</head>
<body>
<!-- 联系的函数 -->
<div id="main">
<p>洞庭西望楚江分,水尽南天不见云。</p>
<p>日落长沙秋色远,不知何处吊湘君。</p>
<p>水尽南天不见云</p>
<ul>
<li name="a">日落长沙秋色远,不知何处吊湘君。</li>
<li name="a">白鱼双尾玉刀明,</li>
<li name="a">灵山多秀色</li>
<li name="a">灵山多秀色</li>
</ul>
</div>
<p>Lorem ipsum dolor sit. <br>
Lorem, ipsum.
</p>
<hr>
<div>
查找文本(将找到的文本高亮显示):
<input type="text" id="searchtext">
<button id="searchbutton">search</button>
</div>
</body>
</html>
function searchClick(){
var a=document.getElementById('searchtext');//添加的位置
searchtext=a.value;//保存要查找的内容
//查找的位置
var main=document.getElementById("main");//通过id查找对象
var tagname=main.getElementsByTagName("p");//通过标签名查找对象----结果是集合
//使用数组
for(var i=0;i<tagname.length;i++){
if(tagname[i].innerHTML.indexOf(searchtext)>=0){ //indexOf查找内容出现的位置
tagname[i].className ="highlighted" //className访问css代码
}else{
tagname[i].className=null;
}
}
var name=document.getElementsByName("a");//通过名称查找对象----结果是集合
//使用数组
for(var i=0;i<name.length;i++){
if(name[i].innerHTML.indexOf(searchtext)>=0){ //indexOf查找内容出现的位置
name[i].className ="highlighted" //className访问css代码
}else{
name[i].className=null;
}
}
}
window.onload=function(){
document.getElementById('searchbutton').onclick=searchClick;//上面连成一句
}

创建和删除节点:
appendChild(node)——在节点的字节点列表尾追加节点
insertBefore(mew,old)——在节点的子节点的old位置前加new节点
removeChile(node)——在节点的子节点列表中移除给定的节点
replaceChild(new,old)——用新节点替换旧节点
单击一次添加一个节点

边栏推荐
- 四大组件---ContentResolver
- qtcreator调试webkit
- 漏洞管理计划的未来趋势
- 2022英伟达显卡排名天梯图
- OpenHarmony啃论文俱乐部-啃论文心得
- Section 4-6 of the first week of the second lesson: Appreciation of medical prognosis cases + homework analysis
- 软件测试面试题:在频繁的版本发布中,如何回归测试?
- 【备战“金九银十”】2022年软件测试面试题最新汇总
- ARM development (4) How to read the chip manual for novice Xiaobai, bare metal driver development steps and pure assembly to achieve lighting, assembly combined with c lighting, c to achieve lighting
- SyntaxError: invalid syntax
猜你喜欢

Multi-threaded ThreadPoolExecutor

Tomca启动闪退问题如何解决
![[4G/5G/6G专题基础-154]: 5G无线准入控制RAC(Radio Admission Control)](/img/5d/5e6cb3e4199c678c06a3b8fab37aa0.png)
[4G/5G/6G专题基础-154]: 5G无线准入控制RAC(Radio Admission Control)

如何解决高度塌陷

This Thursday evening at 19:00, Lesson 5 of the sixth phase of knowledge empowerment丨OpenHarmony WiFi subsystem

88Q2110 access C45 phy address through C22

Detailed explanation of new features of ES advanced function syntax

Docker 链接sqlserver时出现en-us is an invalid culture错误解决方案

Oops novice template Framework project guide

①In-depth analysis of CAS SSO single sign-on framework source code
随机推荐
OpenCV创始人:开源绝不能完全免费!
comp3331-9331-21t1-midterm复习
117. 本地开发好的 SAP UI5 应用部署到 ABAP 服务器时,中文字符变成乱码的原因分析和解决方案
ifconfig与ip命令的比较
测试3年,开口就要25k?面试完最多给15k...
How to realize the repeatable design of FPGA
网络安全笔记第四天day4(kali基本操作)
Lianshengde W801 series 5-WeChat applet and W801 Bluetooth communication routine (read notes)
Ora - 00001 in violation of the only constraint
想进阿里?先来搞懂一下分布式事务
[Detailed explanation of C data storage] (1) - in-depth analysis of the storage of shaping data in memory
LitePal操作数据库
ARM development (4) How to read the chip manual for novice Xiaobai, bare metal driver development steps and pure assembly to achieve lighting, assembly combined with c lighting, c to achieve lighting
通过热透镜聚焦的高斯光束
关于地图GIS的一次实践整理(下) Redis的GIS实践
AI+医疗:使用神经网络进行医学影像识别分析
项目构建工具-Gradle入门
ARM开发(四)新手小白如何阅读芯片手册,裸机驱动开发步骤以及纯汇编实现点灯,汇编结合c点灯,c实现点灯
nvidia-smi详解
gRPC基础概念:闭包