HTML DOM方法

HTML DOM方法大全 – 编程小白必备

HTML DOM方法知识点汇总

编程小白也能看懂的DOM操作全解析

什么是DOM?

DOM(Document Object Model)可以理解为浏览器将网页内容组织成的一个树状结构。想象一下家谱图,DOM就是网页的”家谱图”,每个HTML标签都是这个家谱中的一个成员(节点)。

通过JavaScript操作DOM,我们就可以改变网页内容、样式和结构,让网页动起来!

为什么DOM很重要?

DOM是网页交互的核心技术,没有它就无法实现:

  • 动态更新网页内容
  • 响应用户操作(点击、滚动等)
  • 创建动画效果
  • 表单验证
  • 单页面应用(如React/Vue的基础)

简单说,想成为前端开发者,掌握DOM是必不可少的!

DOM树结构图示

DOM树结构示意图(来源:W3Schools)

DOM核心方法分类讲解

获取元素

document.getElementById(‘id’)

通过HTML元素的id属性获取元素。就像用身份证找人一样。

// 获取id为”username”的元素
const userInput = document.getElementById(‘username’);

document.querySelector(‘selector’)

通过CSS选择器获取第一个匹配的元素。就像在人群中找第一个戴红帽子的人。

// 获取第一个class为”btn”的按钮
const button = document.querySelector(‘.btn’);

document.querySelectorAll(‘selector’)

获取所有匹配CSS选择器的元素,返回一个节点列表(类似数组)。

// 获取所有class为”item”的元素
const items = document.querySelectorAll(‘.item’);
操作内容

element.innerHTML

获取或设置元素的HTML内容。可以包含标签,功能强大但要小心使用。

// 设置div的HTML内容
div.innerHTML = ‘<strong>重要通知</strong>’;

element.textContent

获取或设置元素的纯文本内容(忽略HTML标签),更安全。

// 获取段落的文本内容
const text = p.textContent;

// 设置文本内容
p.textContent = ‘这是一段新文本’;

element.value

获取或设置表单元素的值(如input, select, textarea)。

// 获取输入框的值
const username = input.value;

// 设置输入框的值
input.value = ‘张三’;
操作属性

element.getAttribute(‘attr’)

获取元素的属性值(如id、class、href等)。

// 获取链接的href属性
const url = link.getAttribute(‘href’);

element.setAttribute(‘attr’, ‘value’)

设置元素的属性值。

// 设置图片的src属性
img.setAttribute(‘src’, ‘new-image.jpg’);

element.removeAttribute(‘attr’)

删除元素的属性。

// 删除输入框的disabled属性
input.removeAttribute(‘disabled’);

element.hasAttribute(‘attr’)

检查元素是否有某个属性。

// 检查按钮是否有disabled属性
if (button.hasAttribute(‘disabled’)) {
  console.log(‘按钮被禁用’);
}
操作样式

element.style.property

直接修改元素的内联样式(单个CSS属性)。注意CSS属性名使用驼峰命名法。

// 修改元素的背景色
div.style.backgroundColor = ‘blue’;

// 修改文字大小
p.style.fontSize = ’20px’;

element.classList

操作元素的class属性(推荐方式):

  • add(‘class’) – 添加类
  • remove(‘class’) – 移除类
  • toggle(‘class’) – 切换类(有则移除,无则添加)
  • contains(‘class’) – 检查是否包含类
// 添加active类
button.classList.add(‘active’);

// 切换dark-mode类
body.classList.toggle(‘dark-mode’);
创建和修改元素

document.createElement(‘tag’)

创建一个新的HTML元素(但还没有放入页面)。

// 创建一个div元素
const newDiv = document.createElement(‘div’);

parent.appendChild(element)

将元素添加为父元素的最后一个子元素。

// 在container中添加新div
container.appendChild(newDiv);

parent.removeChild(element)

从父元素中移除指定的子元素。

// 从列表中删除第一个项目
list.removeChild(list.firstChild);

parent.replaceChild(new, old)

用新元素替换父元素中的旧元素。

// 替换列表中的项目
list.replaceChild(newItem, oldItem);
事件处理

element.addEventListener(‘event’, handler)

为元素添加事件监听器(推荐方式)。

// 按钮点击事件
button.addEventListener(‘click’, function() {
  alert(‘按钮被点击了!’);
});

element.removeEventListener(‘event’, handler)

移除事件监听器(需要引用同一个函数)。

💡 常见事件:click(点击), mouseover(鼠标悬停), mouseout(鼠标离开), keydown(按键按下), submit(表单提交)等。

event.preventDefault()

阻止事件的默认行为(如表单提交、链接跳转)。

form.addEventListener(‘submit’, function(event) {
  event.preventDefault(); // 阻止表单提交
  // 做表单验证…
});

DOM方法实战演示

下面是一个实时演示区域,你可以点击按钮查看DOM操作的实际效果:

可操作区域
  • 项目 1
  • 项目 2

DOM操作最佳实践

  • 减少DOM操作: DOM操作比较”昂贵”,尽量减少操作次数
  • 缓存查询结果: 重复查询同一个元素时,先把结果保存在变量中
  • 使用事件委托: 当多个元素有相同事件时,在父元素上添加一个监听器
  • 优先使用class操作: 样式操作尽量使用classList而不是直接修改style
  • 注意innerHTML安全: 避免使用innerHTML插入不可信内容,防止XSS攻击

HTML DOM是前端开发的基础,掌握这些方法后,你就可以创建交互性强大的网页应用!

学习建议:多动手练习,打开浏览器开发者工具(Console)尝试DOM操作

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部