贝利信息

如何通过按钮点击动态切换图片(HTML DOM 图片更新教程)

日期:2026-01-02 00:00 / 作者:心靈之曲

本文详解如何在不重写整个 html 的前提下,仅通过修改 `` 元素的 `src` 属性实现按钮驱动的图片切换,并修复常见逻辑错误(如变量作用域、事件监听误调用、状态未同步等)。

在前端交互开发中,「点击按钮切换图片」是一个典型 DOM 操作场景。许多初学者会尝试用 innerHTML 重新渲染整个

,这不仅性能低,还容易引发状态丢失和事件绑定失效。正确做法是复用现有 DOM 元素,仅更新其属性——尤其是 的 src。

✅ 正确思路:状态驱动 + 属性更新

核心逻辑包含三要素:

下面是一段精简、健壮、可直接运行的实现:

client showcase


@@##@@
// ✅ 获取已存在的 img 元素(关键!避免重复创建)
const img = document.querySelector(".slider img");

// ✅ 获取控制按钮
const nextBtn = document.querySelector(".next");
const prevBtn = document.querySelector(".previous");

// ✅ 图片资源列表(支持本地路径或 CDN URL)
const images = ["car.jpg", "left.jpg"];

// ✅ 状态变量:当前显示索引(声明在函数外,全局有效)
let currentIndex = 0;

// ✅ 下一张:循环切换(到末尾后回到开头)
nextBtn.addEventListener("click", () => {
  currentIndex = (currentIndex + 1) % images.length;
  img.src = images[currentIndex];
});

// ✅ 上一张:循环切换(到开头后跳至末尾)
prevBtn.addEventListener("click", () => {
  currentIndex = (currentIndex - 1 + images.length) % images.length;
  img.src = images[currentIndex];
});

⚠️ 关键注意事项

✅ 进阶建议(可选)

掌握这一模式,你不仅能解决图片切换问题,更能理解现代 DOM 操作的核心思想:最小化变更、状态驱动视图、关注数据与 UI 的单向同步