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

JavaScript中If else逻辑异常:按钮切换图片无法正常回退

图片切换按钮无法切回的问题修复

你的代码有两个关键问题导致无法正常切换回原图片:

  • 错误使用赋值运算符代替比较运算符:if条件里的photo.src = "images/play.png"是赋值操作,不是比较判断。这个表达式每次都会把images/play.png赋值给图片src,并且返回这个字符串(永远为真),所以每次点击都会执行if块的代码,把图片设为pause.png,永远进不了else分支。

  • photo.src返回完整绝对路径:浏览器会自动把相对路径转换成完整的URL(比如http://你的域名/images/play.png),直接和相对路径images/play.png比较永远不相等,就算改了比较运算符也会判断错误。

修复方案1:用getAttribute获取相对路径比较

把判断条件改成用getAttribute('src')获取原始的相对路径,同时把=换成===(严格相等比较):

function change(){
    if(photo.getAttribute('src') === "images/play.png"){
        photo.src = "images/pause.png"
    } else {
        photo.src = "images/play.png"
    }
}

修复方案2:用状态变量记录状态(更推荐)

避免依赖图片路径判断,用一个变量记录当前是播放还是暂停状态,逻辑更清晰可靠:

var btn, photo;
var isPlaying = true; // 初始对应play.png
function initButton(){
    btn=document.getElementById("btn");
    photo = document.getElementById("photo");
    btn.addEventListener("click", change);
    function change(){
        if(isPlaying){
            photo.src = "images/pause.png";
            isPlaying = false;
        } else {
            photo.src = "images/play.png";
            isPlaying = true;
        }
    }
}
window.addEventListener("load", initButton);

这个方案的好处是不用关心图片路径的变化,后续如果要修改按钮文字(比如切换成“暂停”/“播放”)也更容易扩展。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 14:22:30