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

原生JS按钮图片切换功能失效,请求问题排查

问题原因

eng.src返回的是完整的绝对URL(比如http://localhost:8000/England.jpeg),而你直接和相对路径./England.jpeg做相等比较,条件永远不成立,所以切换逻辑不会执行。

解决方法

提供三种可行的修复方案,按需选择:

方案1:使用getAttribute('src')获取相对路径

直接读取元素的src属性原始值(相对路径形式),和目标路径比较:

btn1.addEventListener('click', function(){
  if (eng.getAttribute('src') == "./England.jpeg"){
    eng.src = './England2.jpeg';
  }else {
    eng.src = './England.jpeg';
  }
})

方案2:检查URL的结尾部分

通过判断完整URL的末尾是否包含目标文件名来做条件判断:

btn1.addEventListener('click', function(){
  if (eng.src.endsWith("England.jpeg")){
    eng.src = './England2.jpeg';
  }else {
    eng.src = './England.jpeg';
  }
})

方案3:用自定义属性记录状态

给图片元素加自定义属性标记当前显示状态,完全避免路径比较的问题:

<!-- 修改img标签,添加自定义属性 -->
<img id="eimg" src="./England.jpeg" data-current="first" class="card-img-top" alt="Silhouette of England">
btn1.addEventListener('click', function(){
  if (eng.dataset.current === "first"){
    eng.src = './England2.jpeg';
    eng.dataset.current = "second";
  }else {
    eng.src = './England.jpeg';
    eng.dataset.current = "first";
  }
})
额外说明

btn2和btn3是直接赋值修改路径,没有做条件判断,所以不受路径格式影响,能正常工作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 04:10:27