如何实现按钮图标从夜间模式切换为日间模式?jQuery判断不生效求助
故障根因
- 浏览器读取
img标签的.src属性时,会自动将你写的相对路径拼接域名/站点根路径转换为绝对路径,你代码中定义的night_icon、day_icon是相对路径,二者直接做相等判断永远不成立,导致分支判断逻辑失效。 - 补充:如果使用jQuery写法,调用
attr('src')也可以拿到标签上填写的原始相对路径。
修复方案
只要把判断条件里的icon.src替换为icon.getAttribute('src'),读取HTML标签上原始的src属性值做比较即可,修复后完整代码如下:
function toggleDisplay() { var icon = document.getElementById("togglebutton"); var night_icon = 'assets/Feed_Toggle_Night.png' var day_icon = 'assets/Feed_Toggle_Day.png' $("displaytog").on("click", () => { // 改用getAttribute读取原始相对路径做判断 if (icon.getAttribute('src') == night_icon) { icon.src = day_icon; console.log("success1"); }else { icon.src = night_icon; console.log("success2"); } }) } toggleDisplay();
原有HTML代码无需修改。
内容的提问来源于stack exchange,提问作者ckwheatley15
相关产品推荐
相关产品推荐

