当前位置:网站首页>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)——用新节点替换旧节点
单击一次添加一个节点
边栏推荐
- 如何开展性能测试,你知道吗?
- 维特智能惯导配置
- 经典面试题 之 GC垃圾收集器
- This Thursday evening at 19:00, Lesson 5 of the sixth phase of knowledge empowerment丨OpenHarmony WiFi subsystem
- 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
- 《QA离业务代码能有多近?》轻量级单元测试方案
- 【idea 报错】 无效的目标发行版:17 的解决参考
- 通过热透镜聚焦的高斯光束
- 软件测试面试题:Web服务器指标指标?
- Some work experience after joining the digital ic design
猜你喜欢
如何开展性能测试,你知道吗?
ES进阶 数组功能语法新特性详解
Some work experience after joining the digital ic design
多线程之ThreadPoolExecutor
117. 本地开发好的 SAP UI5 应用部署到 ABAP 服务器时,中文字符变成乱码的原因分析和解决方案
js原型和原型链及原型继承
【C 数据存储详解】(1)——深度剖析整形数据在内存中的存储
TRCX: doping process analysis
Detailed explanation of common methods of filtering matrix (array) elements in Matlab
想进阿里?先来搞懂一下分布式事务
随机推荐
ARM开发(四)新手小白如何阅读芯片手册,裸机驱动开发步骤以及纯汇编实现点灯,汇编结合c点灯,c实现点灯
14.cuBLAS开发指南中文版--cuBLAS中的Level-1函数nrm2()和rot()
js原型和原型链及原型继承
MySQL八股文背诵版(续)
A surviving spouse of the opposite sex within large turn paragraph, what for
惨遭面试官吊打高并发系统设计,回来学习 2400 小时后成功复仇
学军中学推理社2017届招新试题
nvidia-smi详解
维特智能惯导配置
3342: String manipulation problem solving
解决vim与外界的复制粘贴(不用安装插件)
一次简单的 JVM 调优,拿去写到简历里
软件测试面试题:性能测试工作?
Research on the Application of Privacy Computing Fusion
CC0 与商业 IP:哪种模式更适合 NFT?
gRPC基础概念:闭包
[4G/5G/6G专题基础-154]: 5G无线准入控制RAC(Radio Admission Control)
通过热透镜聚焦的高斯光束
async和await的理解和用法
MySQL - an SQL in MySQL is how to be performed?