You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

点击多张图片切换时e.target.src返回undefined的问题排查

问题原因及解决办法

报错的核心原因是你点击的目标不一定是图片元素——比如点击到了图片的父容器(比如div、span这类包裹元素),此时e.target不是<img>标签,自然没有src属性,赋值给目标图片的src就会变成undefined,浏览器就会去请求undefined这个不存在的路径,导致报错。

修复方案

在事件处理里先判断点击的元素是否为图片,只有是<img>时才执行切换逻辑:

let special_countries_element_image = document.getElementById("special_countries_element_image");

function changeImage(element, e) {
  // 先确认点击的是图片元素
  if (e.target.tagName.toLowerCase() === 'img') {
    element.src = e.target.src;
  }
}

container_countries.addEventListener('click', function(e) {
  changeImage(special_countries_element_image, e);
});

额外优化建议

如果你的图片是被其他元素包裹的(比如每个图片都在一个<div class="country-item">里),还可以用closest()方法精准找到父容器里的图片,避免误判:

function changeImage(element, e) {
  // 从点击元素向上找最近的img标签
  const clickedImg = e.target.closest('img');
  if (clickedImg) {
    element.src = clickedImg.src;
  }
}

内容的提问来源于stack exchange,提问作者DaceWooow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 03:05:28