第1课_DOM操作与事件
热度🔥:121 免费课程
授课语音
掌握DOM操作和DOM事件
DOM(文档对象模型)是浏览器用来表示和操作网页内容的接口。通过DOM,JavaScript可以动态地访问和修改页面的结构、样式和内容。掌握DOM操作和事件处理是前端开发的核心技能。
1. DOM操作简介
DOM是网页的结构化表示,它将网页内容解析成一个树形结构,每个节点代表文档中的一部分内容。通过DOM,我们可以使用JavaScript来访问、修改、删除或添加网页中的元素。
1.1 常用的DOM操作方法
获取元素
getElementById()
:根据ID获取单个元素。getElementsByClassName()
:根据类名获取多个元素。getElementsByTagName()
:根据标签名获取多个元素。querySelector()
:根据CSS选择器获取单个元素。querySelectorAll()
:根据CSS选择器获取多个元素。
修改元素内容
innerHTML
:获取或设置元素的HTML内容。textContent
:获取或设置元素的文本内容。
修改元素属性
setAttribute()
:设置元素的属性。getAttribute()
:获取元素的属性。removeAttribute()
:移除元素的属性。
修改样式
style
:直接修改元素的行内样式。
2. 代码案例:DOM操作
2.1 获取元素并修改内容
// 获取元素并修改文本内容
const heading = document.getElementById("title");
heading.textContent = "新的标题内容"; // 修改文本内容
// 获取元素并修改HTML内容
const paragraph = document.querySelector(".description");
paragraph.innerHTML = "<strong>这是新的描述内容</strong>"; // 修改HTML内容
解释:
getElementById("title")
获取ID为title
的元素,并修改其文本内容。querySelector(".description")
选择类名为description
的第一个元素,并修改其HTML内容。
2.2 修改元素属性
// 设置图片的src属性
const image = document.querySelector("img");
image.setAttribute("src", "new_image.jpg");
// 获取元素的属性
const link = document.getElementById("myLink");
const href = link.getAttribute("href");
console.log(href); // 输出链接的URL
// 移除元素的属性
link.removeAttribute("href"); // 移除链接的href属性
解释:
setAttribute()
用于设置元素的属性,比如设置图片的src
。getAttribute()
用于获取元素的属性值,比如获取链接的href
。removeAttribute()
用于移除元素的属性。
3. DOM事件简介
DOM事件是网页中用户与页面互动时触发的动作,如鼠标点击、键盘输入、窗口调整大小等。JavaScript通过监听这些事件,响应用户操作,进行动态交互。
3.1 常见的DOM事件类型
鼠标事件
click
:鼠标点击。dblclick
:鼠标双击。mouseover
:鼠标移动到元素上方。mouseout
:鼠标移出元素。
键盘事件
keydown
:键盘按键按下。keyup
:键盘按键释放。keypress
:键盘按键按下并且产生字符。
表单事件
submit
:表单提交。change
:表单元素值改变。
其他事件
resize
:窗口大小变化。scroll
:滚动条滚动。
4. 代码案例:DOM事件
4.1 添加事件监听器
// 给按钮添加点击事件
const button = document.getElementById("myButton");
button.addEventListener("click", function() {
alert("按钮被点击了!");
});
// 给输入框添加键盘按键事件
const input = document.getElementById("myInput");
input.addEventListener("keyup", function(event) {
console.log("按下的键是:" + event.key);
});
解释:
addEventListener()
方法为指定的元素添加事件监听器。在按钮点击时弹出提示框,在输入框键盘按键释放时输出按键的字符。
4.2 事件对象
// 通过事件对象获取更多信息
const div = document.querySelector("div");
div.addEventListener("click", function(event) {
console.log("事件类型:" + event.type); // 输出事件类型
console.log("点击的坐标:" + event.clientX + ", " + event.clientY); // 输出点击位置
});
解释:
event
是事件对象,包含了事件发生时的相关信息,如事件类型、鼠标点击位置等。
4.3 事件委托
// 通过事件委托来处理多个子元素的点击事件
const container = document.getElementById("container");
container.addEventListener("click", function(event) {
if (event.target && event.target.matches("button.className")) {
alert("按钮被点击了!");
}
});
解释:
- 事件委托是通过给父元素添加事件监听器来处理多个子元素的事件,这样可以避免为每个子元素单独添加事件监听器。
5. 总结
DOM操作:
- 使用DOM方法可以动态地获取和修改页面元素的内容、属性和样式。
- 通过
getElementById
、querySelector
等方法获取元素,通过innerHTML
、setAttribute
等方法修改元素。
DOM事件:
- 使用
addEventListener()
为页面元素添加事件监听器,处理用户的交互。 - 事件对象提供了关于事件的详细信息,如事件类型、鼠标坐标等。
- 事件委托可以提高性能,简化多个子元素的事件处理。
- 使用
通过掌握DOM操作和事件处理,可以实现更加动态和互动的网页应用,提高用户体验。