javaScript(六):DOM操作

文章目录

1、DOM介绍

概念

Document Object Model ,文档对象模型

将标记语言的各个组成部分封装为对应的对象:

  • Document:整个文档对象
  • Element:元素对象
  • Attribute:属性对象
  • Text:文本对象
  • Comment:注释对象

JavaScript 通过DOM,就能够对HTML进行操作:

  • 改变 HTML 元素的内容
  • 改变 HTML 元素的样式(CSS)
  • 对 HTML DOM 事件作出反应
  • 添加和删除 HTML 元素

2、DOM:获取Element对象

HTML中的Element对象可以通过Document对象获取,而Document对象是通过window对象获取的。

Document对象中提供了以下获取Element元素对象的函数:

1、根据id属性值获取,返回单个Element对象

javascript 复制代码
<img id="light" src="img/off.gif"> <br>
<script>
    document.getElementById("light").src = "img/on.gif";
</script>

2、根据标签名称获取,返回Element对象数组

javascript 复制代码
<div>小林</div>   <br>
<div>不想努力了</div> <br>

<script>
    // getElementsByTagName:根据标签名称获取元素数组
    // innerHTML:表示修改标签元素中的内容
    let htmlDivElement = document.getElementsByTagName("div");
    for (let element of htmlDivElement){
        element.innerHTML = "哈哈";
    }
</script>

3、根据name属性值获取,返回Element对象数组

javascript 复制代码
<input type="checkbox" name="hobby"> 电影
<input type="checkbox" name="hobby"> 旅游
<input type="checkbox" name="hobby"> 游戏

<script>
	let elementsByName = document.getElementsByName("hobby");
	for (let hobbyElement of elementsByName) {
    	hobbyElement.checked = true;
	}
</script>

4、根据class属性值获取,返回Element对象数组

javascript 复制代码
<div class="cls">Java</div><br>
<div class="cls">PHP</div><br>

<script>
    let elementsByClassName = document.getElementsByClassName("cls");
    for (let ClassNameElement of elementsByClassName) {
        ClassNameElement.innerHTML = "嘻嘻";
    }
</script>

3、DOM:事件监听

3.1、事件介绍

什么是事件

​ 用户可以对网页的元素有各种不同的操作如:单击,双击,鼠标移动等这些操作就称为事件。事件通常与函数配合使用,这样就可以通过发生的事件来驱动JavaScript函数执行。

3.2、常见事件
事件名 说明
onclick 鼠标单击事件
onblur 元素失去焦点
onfocus 元素获得焦点
onload 某个页面或图像被完成加载
onsubmit 当表单提交时触发该事件
onkeydown 某个键盘的键被按下
onmouseover 鼠标被移到某元素之上
onmouseout 鼠标从某元素移开
3.3、设置事件的两种方式

方式一:命名函数

通过标签中的事件属性进行绑定

javascript 复制代码
<button type="button" onclick="函数名()"></button>

<script>
    // 命名函数设置事件
    function abc(){
        alert("你点我了")
    }
</script>

方式二:匿名函数

通过DOM元素属性绑定

javascript 复制代码
<input type="button" id="btn">
    
<script>
    // 匿名函数设置失去焦点的事件
    document.getElementById("btn").onclick = function (){
        alert("我被点了")
    }
</script>
3.4、事件案例

当输入用户名时显示正在输入,离开时显示请输入

案例代码

javascript 复制代码
用户名: <input id="in1" name="user">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span id="sp1">请输入</span>

<script>
    document.getElementById("in1").onfocus = function (){
        document.getElementById("sp1").innerHTML = "正在输入"
    }

    document.getElementById("in1").onblur = function (){
        document.getElementById("sp1").innerHTML = "请输入"
    }
</script>
相关推荐
坚果派·白晓明1 天前
【鸿蒙PC三方库移植适配框架解读系列】第八篇:扩展lycium框架使其满足rust三方库适配
c语言·开发语言·华为·rust·harmonyos·鸿蒙
花间相见1 天前
【PaddleOCR教程01】PP-OCRv5 全面指南:从模型架构到实战部署
开发语言·r语言
小短腿的代码世界1 天前
Qt 股票订单撮合引擎:高频交易系统的核心心脏
开发语言·数据库·qt·系统架构·交互
不会敲代码11 天前
手写 Zustand:三十分钟带你搞懂状态管理库的核心原理
前端·javascript·源码
神奇的程序员1 天前
重构了自己5年前写的截图插件
前端·javascript·架构
橙淮1 天前
从优化到安全再到未来 ——JavaScript 全维度技术指南
javascript
谙弆悕博士1 天前
快速学C语言——第16章:预处理
c语言·开发语言·chrome·笔记·创业创新·预处理·业界资讯
诚实可靠王大锤1 天前
React Native 输入框与按钮焦点冲突解决方案(rn版本0.70.3)
前端·javascript·react native·react.js
yuan199971 天前
基于 C# 实现的 Omron HostLink (FINS) 协议 PLC 通讯
开发语言·c#
qq_422828621 天前
android图形学之SurfaceControl和Surface的关系 五
android·开发语言·python