授课语音

掌握DOM操作和DOM事件

DOM(文档对象模型)是浏览器用来表示和操作网页内容的接口。通过DOM,JavaScript可以动态地访问和修改页面的结构、样式和内容。掌握DOM操作和事件处理是前端开发的核心技能。


1. DOM操作简介

DOM是网页的结构化表示,它将网页内容解析成一个树形结构,每个节点代表文档中的一部分内容。通过DOM,我们可以使用JavaScript来访问、修改、删除或添加网页中的元素。

1.1 常用的DOM操作方法

  1. 获取元素

    • getElementById():根据ID获取单个元素。
    • getElementsByClassName():根据类名获取多个元素。
    • getElementsByTagName():根据标签名获取多个元素。
    • querySelector():根据CSS选择器获取单个元素。
    • querySelectorAll():根据CSS选择器获取多个元素。
  2. 修改元素内容

    • innerHTML:获取或设置元素的HTML内容。
    • textContent:获取或设置元素的文本内容。
  3. 修改元素属性

    • setAttribute():设置元素的属性。
    • getAttribute():获取元素的属性。
    • removeAttribute():移除元素的属性。
  4. 修改样式

    • 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事件类型

  1. 鼠标事件

    • click:鼠标点击。
    • dblclick:鼠标双击。
    • mouseover:鼠标移动到元素上方。
    • mouseout:鼠标移出元素。
  2. 键盘事件

    • keydown:键盘按键按下。
    • keyup:键盘按键释放。
    • keypress:键盘按键按下并且产生字符。
  3. 表单事件

    • submit:表单提交。
    • change:表单元素值改变。
  4. 其他事件

    • 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. 总结

  1. DOM操作:

    • 使用DOM方法可以动态地获取和修改页面元素的内容、属性和样式。
    • 通过getElementByIdquerySelector等方法获取元素,通过innerHTMLsetAttribute等方法修改元素。
  2. DOM事件:

    • 使用addEventListener()为页面元素添加事件监听器,处理用户的交互。
    • 事件对象提供了关于事件的详细信息,如事件类型、鼠标坐标等。
    • 事件委托可以提高性能,简化多个子元素的事件处理。

通过掌握DOM操作和事件处理,可以实现更加动态和互动的网页应用,提高用户体验。

去1:1私密咨询

系列课程: