JavaScript之DOM_动力节点Java学院整理
发布时间 - 2026-01-11 02:08:56 点击率:次由于HTML文档被浏览器解析后就是一棵DOM树,要改变HTML的结构,就需要通过JavaScript来操作DOM。
始终记住DOM是一个树形结构。操作一个DOM节点实际上就是这么几个操作:

- 更新:更新该DOM节点的内容,相当于更新了该DOM节点表示的HTML的内容;
- 遍历:遍历该DOM节点下的子节点,以便进行进一步操作;
- 添加:在该DOM节点下新增一个子节点,相当于动态增加了一个HTML节点;
- 删除:将该节点从HTML中删除,相当于删掉了该DOM节点的内容以及它包含的所有子节点。
在操作一个DOM节点前,我们需要通过各种方式先拿到这个DOM节点。最常用的方法是document.getElementById()和document.getElementsByTagName(),以及CSS选择器document.getElementsByClassName() 。
由于ID在HTML文档中是唯一的,所以document.getElementById()可以直接定位唯一的一个DOM节点。
document.getElementsByTagName()和document.getElementsByClassName()总是返回一组DOM节点。要精确地选择DOM,可以先定位父节点,再从父节点开始选择,以缩小范围。
例如:
// 返回ID为'test'的节点:
var test = document.getElementById('test');
// 先定位ID为'test-table'的节点,再返回其内部所有tr节点:
var trs = document.getElementById('test-table').getElementsByTagName('tr');
// 先定位ID为'test-div'的节点,再返回其内部所有class包含red的节点:
var reds = document.getElementById('test-div').getElementsByClassName('red');
// 获取节点test下的所有直属子节点:
var cs = test.children;
// 获取节点test下第一个、最后一个子节点:
var first = test.firstElementChild;
var last = test.lastElementChild;
第二种方法是使用querySelector()和querySelectorAll(),需要了解selector语法,然后使用条件来获取节点,更加方便:
// 通过querySelector获取ID为q1的节点:
var q1 = document.querySelector('#q1');
// 通过querySelectorAll获取q1节点内的符合条件的所有节点:
var ps = q1.querySelectorAll('div.highlighted > p');
注意:低版本的IE<8不支持querySelector和querySelectorAll。IE8仅有限支持。
严格地讲,我们这里的DOM节点是指Element,但是DOM节点实际上是Node,在HTML中,Node包括Element、Comment、CDATA_SECTION等很多种,以及根节点Document类型,但是,绝大多数时候我们只关心Element,也就是实际控制页面结构的Node,其他类型的Node忽略即可。根节点Document已经自动绑定为全局变量document。
练习
如下的HTML结构:
JavaScript
Java
Python
Ruby
Swift
Scheme
Haskell
<!-- HTML结构 --> <div id="test-div"> <div class="c-red"> <p id="test-p">JavaScript</p> <p>Java</p> </div> <div class="c-red c-green"> <p>Python</p> <p>Ruby</p> <p>Swift</p> </div> <div class="c-green"> <p>Scheme</p> <p>Haskell</p> </div> </div>
请选择出指定条件的节点:
// 选择<p>JavaScript</p>: var js = ???; // 选择<p>Python</p>,<p>Ruby</p>,<p>Swift</p>: var arr = ???; // 选择<p>Haskell</p>: var haskell = ???;
# JavaScript
# DOM
# javascript 获取HTML DOM父、子、临近节点
# javascript学习笔记(三)BOM和DOM详解
# JS DOM 操作实现代码
# javascript转换字符串为dom对象(字符串动态创建dom)
# javascript dom 操作详解 js加强
# javascript获取dom的下一个节点方法
# Js 获取HTML DOM节点元素的方法小结
# 遍历
# 是一个
# 几个
# 文档
# 第一个
# 是指
# 可以直接
# 不支持
# 请选择
# 种方法
# 一棵
# 将该
# 符合条件
# 最常用
# 增加了
# 严格地
# 删掉了
# 全局变量
# 选择器
# 是唯一
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何用狗爹虚拟主机快速搭建网站?
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
微信小程序 input输入框控件详解及实例(多种示例)
微信小程序 五星评分(包括半颗星评分)实例代码
Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】
JavaScript常见的五种数组去重的方式
HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】
Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】
宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法
Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】
Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门
如何用IIS7快速搭建并优化网站站点?
HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】
Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
网站制作免费,什么网站能看正片电影?
如何在万网开始建站?分步指南解析
Android okhttputils现在进度显示实例代码
Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程
js代码实现下拉菜单【推荐】
如何打造高效商业网站?建站目的决定转化率
如何在IIS7上新建站点并设置安全权限?
如何在腾讯云服务器上快速搭建个人网站?
音响网站制作视频教程,隆霸音响官方网站?
Laravel Debugbar怎么安装_Laravel调试工具栏配置指南
如何在Windows虚拟主机上快速搭建网站?
JavaScript模板引擎Template.js使用详解
青岛网站建设如何选择本地服务器?
Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】
Laravel怎么清理缓存_Laravel optimize clear命令详解
如何在七牛云存储上搭建网站并设置自定义域名?
魔毅自助建站系统:模板定制与SEO优化一键生成指南
JS去除重复并统计数量的实现方法
Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册
Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程
JS碰撞运动实现方法详解
千库网官网入口推荐 千库网设计创意平台入口
郑州企业网站制作公司,郑州招聘网站有哪些?
详解jQuery中基本的动画方法
香港服务器租用费用高吗?如何避免常见误区?
网站优化排名时,需要考虑哪些问题呢?
Laravel如何实现全文搜索功能?(Scout和Algolia示例)
安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出
手机软键盘弹出时影响布局的解决方法
Laravel Octane如何提升性能_使用Laravel Octane加速你的应用
Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】
Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程
如何用wdcp快速搭建高效网站?
Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?

