Javascript 中的灯泡不亮

Light Bulb in Javascript doesn't Turn On

提问人:SomeOne 提问时间:4/5/2020 更新时间:4/5/2020 访问量:633

问:

<!DOCTYPE html>
<html>
<head>
    <title>switch</title>
    <script language="javascript" type="text/javascript">
        function click_turn() {
            if (document.getElementById("light").src == "/pic_bulboff.gif") {
                document.getElementById("light").src = "/pic_bulbon.gif";
            }
            else {
                document.getElementById("light").src = "/pic_bulboff.gif";
            }
        }
    </script>
</head>
<body>
    <img id="light" src="/pic_bulboff.gif" />
    <br />
    <button id="click" onclick="click_turn()">Click</button>
</body>
</html>

按钮不起作用,即灯泡不亮。我在谷歌上搜索,没有找到任何解决方案。我做错了什么?

JavaScript HTML Web 客户端

评论

0赞 palaѕн 4/5/2020
您的代码工作正常。您能否使用 jsfiddle此处的片段为此创建一个小演示来显示正在发生的问题。
1赞 Aluan Haddad 4/5/2020
检查您的主机,并确保映像没有获得 404

答:

0赞 Rayon 4/5/2020 #1

HTMLMediaElement.src 属性反映 HTML 媒体元素的 src 属性的值,该属性指示要在元素中使用的媒体资源的 URL。

您应该使用元素的属性,而不是使用 property,该属性不是 URL,而是分配的值。srcgetAttribute

function click_turn() {
  if (document.getElementById("light").getAttribute('src') == "pic_bulboff.gif") {
    document.getElementById("light").setAttribute('src', "pic_bulbon.gif")
  } else {
    document.getElementById("light").setAttribute('src', "pic_bulboff.gif")
  }
}
<base href="https://www.w3schools.com/js/">
<img id="light" src="pic_bulboff.gif" />
<br />
<button id="click" onclick="click_turn()">Click</button>

0赞 Ali Sheikhpour 4/5/2020 #2

using 将返回绝对路径而不是相对路径,因此 永远不会等于 。您还可以将 baseurl 添加到逻辑中,或改用:img.srcdocument.getElementById("light").src/pic_bulboff.gif.includes("")

 function click_turn() {
        if (document.getElementById("light").src.includes("pic_bulboff.gif") {
            document.getElementById("light").src = "/pic_bulbon.gif";
        }
        else {
            document.getElementById("light").src = "/pic_bulboff.gif";
        }
    }
0赞 Zimri Leijen 4/5/2020 #3

document.getElementById("light").src返回完整路径 ('http://etc')。

尝试document.getElementById("light").src.endsWith("/pic_bulboff.gif")

0赞 SomeOne 4/5/2020 #4

好吧,我用“endsWith”替换了“==”,它起作用了。谢谢你们的帮助。