JavaScript的DOM知识点总结

本文详细介绍了JavaScript中的DOM核心概念,包括DOM事件流、元素操作、属性操作、事件处理、节点操作等方面,提供了丰富的实例和代码示例,帮助读者深入理解并掌握JavaScript操作HTML页面的方法。此外,还分享了实际开发中的常见案例,如显示隐藏密码、百度换肤、表格隔行变色、全选与反选、tab栏切换等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

目录

1.DOM重点核心

2.DOM事件流

3.DOM知识点总结

4.常见案例


视频资料,pink老师讲的超级详细,JavaScript的DOM操作:黑马程序员JavaScript核心教程,前端基础教程,JS必会的DOM BOM操作_哔哩哔哩_bilibili黑马程序员JavaScript核心教程,前端基础教程,JS必会的DOM BOM操作共计167条视频,包括:01-Web APIs简介导读、02-js基础和Web APIs两个阶段的关联性、03-API 和 Web API、04-DOM导读、05-DOM简介、06-getElementById获取元素、07-getElementsByTagName获取某类标签元素、08-H5新增获取元素方式、09-获取body和html元素、10-事件三要素、11-执行事件过程、12-操作元素-修改元素内容、13-innerText和innerHTML的区别、14-操作元素-修改元素属性、15-分时问候案例、16-操作元素-修改表单属性、17-仿京东显示隐藏密码明文案例(上)、18-仿京东显示隐藏密码明文案例(下)、19-操作元素-修改样式属性、20-仿淘宝关闭二维码案例、21-循环精灵图、22-显示隐藏文本框内容、23-使用className修改样式属性、24-密码框验证信息、25-操作元素总结以及作业、01-排他思想(算法)、02-百度换肤效果、03-表格隔行变色效果、04-表单全选取消全选(上)、05-表单全选取消全选(下)、06-获取自定义属性值、07-设置移除自定义属性、08-tab栏切换布局分析(重要)、09-tab栏切换制作(上)、10-tab栏切换制作(下)、11-H5自定义属性、12-为什么学习节点操作以及节点简介、13-节点操作之父节点、14-节点操作之子节点、15-节点操作之第一个子元素和最后一个子元素、16-新浪下拉菜单、17-节点操作之兄弟节点、18-节点操作之创建和添加节点、19-简单版发布留言案例、01-节点操作-删除节点、02-删除留言案例、03-节点操作-复制节点、04-动态生成表格-创建学生数据、05-动态生成表格-创建行、06-动态生成表格-创建单元格、07-动态生成表格-单元格填充数据、08-动态生成表格-创建删除单元格、09-动态生成表格-添加删除操作、10-document.write创建元素(了解)、11-innerHTML和createElement效率对比、12-DOM重点核心、13-事件高级导读、14-注册事件两种方式、15-attachEvent注册事件、16-删除事件、17-DOM事件流理论、18-DOM事件流代码验证、19-什么是事件对象、20-e.target和this区别、21-阻止默认行为、22-阻止事件冒泡、23-事件委托、24-禁止选中文字和禁止右键菜单、25-获得鼠标在页面中的坐标、26-跟随鼠标的天使、01-常用的键盘事件、02-keyCode判断用户按下哪个键、03-模拟京东按键输入内容案例、04-模拟京东快递单号查询(上)、05-模拟京东快递单号查询(下)、06-BOM导读、07-BOM概述、09-页面加载事件、10-调整窗口大小事件、11-定时器之setTimeout、12-回调函数以及5秒之后自动关闭的广告、13-清除定时器clearTimeout、14-定时器之setInterval、15-倒计时效果、16-清除定时器clearInterval、17-发送短信案例、18-this指向问题、19-js 同步和异步、20-同步任务和异步任务执行过程、21-js执行机制、22-location对象常见属性、23-5秒钟之后跳转页面、24-获取URL参数、25-location常见方法、26-navigator对象、27-history对象、01-PC端网页特效异读、02-offsetLeft和offsetTop获取元素偏移、03-offsetWidth和offsetHeight获取元素大小、04-offset与style区别、05-获取鼠标在盒子内的坐标、06-拖动模态框(上)、07-拖动模态框(中)、08-拖动模态框(下)、09-仿京东放大镜效果页面结构搭建、10-仿京东放大镜效果显示隐藏遮挡层和大盒子、11-仿京东放大镜效果遮挡层跟随鼠标、12-仿京东放大镜效果限制遮挡层移动范围、13-仿京东放大镜效果大图片移动、14-client系列、15-立即执行函数、16-淘宝flexibleJS源码分析之核心原理、17-淘宝flexibleJS源码分析之pageshow事件、18-scroll系列、19-仿淘宝固定侧边栏(上)、20-仿淘宝固定侧边栏(下)、21-三大系列总结、22-mouseover和mouseenter区别、23-动画原理、24-简单动画函数封装、25-动画函数-给不同元素记录不同定时器、01-缓动动画原理、02-缓动动画基本代码实现、03-缓动动画多个目标值之间移动、04-缓动动画添加回调函数、05-动画函数的使用、06-网页轮播图-结构搭建、07-网页轮播图-鼠标经过显示隐藏左右按钮、08-网页轮播图-动态生成小圆圈、09-网页轮播图-小圆圈排他思想、10-网页轮播图-点击小圆圈滚动图片、11-网页轮播图-右侧按钮无缝滚动、12-网页轮播图-克隆第一张图片、13-网页轮播图小圆圈跟随右侧按钮一起变化、14-网页轮播图-两个小bug解决方案、15-网页轮播图-左侧按钮功能制作、16-网页轮播图-自动播放功能、17-节流阀以及逻辑中断应用、18-带有动画的返回顶部、19-筋斗云案例、20-移动端网页特效导读、21-移动端touch触摸事件、22-移动端TouchEvent触摸事件对象、23-移动端拖动元素、01-移动端轮播图-结构搭建、02-移动端轮播图-布局分析、03-移动端轮播图-滚动图片、04-移动端轮播图-无缝滚动、05-classList类名操作、06-移动端轮播图-小圆点跟随变化、07-移动端轮播图-手指拖动轮播图、08-移动端轮播图-手指滑动播放上一张下一张图片、09-移动端轮播图-回弹效果、10-返回顶部模块制作、11-移动端click事件300ms延时问题解决方案、12-fastclick插件使用、13-swiper插件使用-引入相关文件、14-移动端轮播图-按照语法规范使用、15-swiper插件使用-参数更改、16-移动端其他插件以及使用总结、17-视频插件zy.media.js的使用、18-bootstrap轮播图、19-阿里百秀轮播图制作、20-本地存储导读、21-本地存储之sessionStorage、22-本地存储之localStorage、23-记住用户名案例等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV1k4411w7sV?from=search&seid=12490460229912372127&spm_id_from=333.337.0.0 

1.DOM重点核心

        1.1概念:文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标记语言(HTML或者XML)的标准编程接口。W3C已经定义了一系列的DOM接口,通过这些DOM接口可以改变网页的内容、结构和样式。

        1.2对于JavaScript,为了能够是JavaScript操作HTML,JavaScript就有了一套自己的dom编程接口。

        1.3对于HTML,dom使得html形成一颗dom树,包含文档、元素、节点(获取的节点全部都是对象)。

        1.4关于dom操作,我们主要针对于元素的操作。主要有创建、增、删、改、查、属性操作、事件操作。

        1.5创建 :1)document.write() ;2)element.innerHTML() ;3)createElement().

        1.6增加: 1)element.appendChild() ;2)element.insertBefore(property,index).

        1.7删除:element.removeChild();

        1.8修改: 1)修改元素属性:src,href,title等; 2)修改普通元素内容:innerHTML,innerText ;3)修改表单元素:value,type,disable等 ;4)修改元素样式:style,className。

        1.9查找: 1)DOM提供的API方法:getElementById、getElemnetsByTagName 古老用法 不太推荐 ;2)H5提供的新方法:querySelector/querySelectorAll 提倡 ;3)利用节点操作获取元素:父(parentNode)、子(children)、兄(previousElemnetSibling、nextElementSibling)提倡。

        1.10属性操作: 主要针对于自定义属性。 1)setAttribute:设置dom的属性值 ;2)getAttribute:得到dom的属性值 ;3)removeAttribute移除属性。

        1.11实践操作: 给元素注册事件,采取事件源.事件类型 = 事件处理程序

                例如:onclickon,mouseover,onmouseout,onfocus,onblur,onmousemove,

                            onmouseup,onmousedown等等。

2.DOM事件流

        2.1概念:事件发生时会在元素节点之间按照特定的顺序传播,这个传播过程即DOM事件流。

        例如:浏览器加载HTML文件时,会采取从上到下的顺序阅读,当script写在button按钮下方时,会先获取到按钮,然后获取script,这时,点击按钮就会弹出“您好吗?”

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>DOM事件流</title>
</head>
<body>
<button>点击弹出弹窗</button>
<script>
    var btn = document.querySelector('button');
    btn.addEventListener('click',function () {
        alert('您好吗?')
    })
</script>
</body>
</html>

     

         反之,如果script写在了button的上面,页面加载时会先执行script后执行button,在执行script时,由于页面中还没有button按钮,所以没有获取到button,点击事件自然也不成立,当我们点击按钮时自然也不会弹出“您好吗?”。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    var btn = document.querySelector('button');
    btn.addEventListener('click',function () {
        alert('您好吗?')
    })
</script>
<button>点击弹出弹窗</button>
</body>
</html>

3.DOM知识点总结

        3.1元素的获取

        (1)根据ID获取:document.getElementById()  。这个方法是根据元素的id值来获取元素,返回的是一个对象。

        例如:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>获取元素getElementById()</title>
</head>
<body>
<button id="btn">点击弹出弹窗</button>
<script>
    var btn = document.getElementById('btn');
    btn.addEventListener('click',function () {
        alert('您好吗?')
    })
</script>
</body>
</html>

        (2)根据标签名获取:document.getElementByTagName(),这个方法返回带有指定标签名的对象的集合,注意是一个集合,以伪数组的形式储存的。

        例如:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>获取元素getElementByTagName()</title>
</head>
<body>
<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
</ul>
<script>
    var lis = document.getElementsByTagName('li');
    console.log(lis);
</script>
</body>
</html>

        

         (3)通过H5新增的方法获取:

                document.getElementByClassName('类名')   这个方法是根据类名返回元素对象合集。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>获取元素getElementByClassName()</title>
</head>
<body>
<ul>
    <li class="example">1</li>
    <li class="example">2</li>
    <li class="example">3</li>
</ul>
<script>
    var lis = document.getElementsByClassName('example');
    console.log(lis);
</script>
</body>
</html>

        

                document.querySelector('选择器'),其中的选择器可以是类名,可以是id,也可以是标签名,这个方法返回的是单个对象,如果是多个对象,那么querySelector()就返回第一个对象;还有document .querySelectorAll('选择器')这个方法跟querySelector()一样根据选择器返回对象,不同的是querySelectorAll()返回的是所有相同选择器的对象,所以它返回的是一个对象集合。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>获取元素querySelector()和querySelectorAll()</title>
</head>
<body>
<ul>
    <li class="example">1</li>
    <li class="example">2</li>
    <li class="example">3</li>
</ul>
<div class="first"></div>
<div id="second"></div>
<script>
    //querySelecor()根据类名和id来获取
    var div1 = document.querySelector('.first');//类名
    var div2 = document.querySelector('#second');//id
    //querySelectorAll()根据标签获取对象集合
    var lis = document.querySelectorAll('li');

    console.log(div1);
    console.log(div2);
    console.log(lis);
</script>
</body>
</html>

        

        (4)获取body元素 document.body和获取html元素document.documentElement.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>获取body元素和html元素</title>
</head>
<body>
<script>
    console.log(document.body);
    console.log(document.documentElement);
</script>
</body>
</html>

        

        3.2 事件基础

        一个完整的时间包括三要素:事件源,事件类型,事件处理程序。

        例如:

        

        3.3 常见的鼠标事件

                onclick        鼠标点击左键触发                onfocus        获得鼠标焦点触发

                onmouseover        鼠标经过触发  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值