提问人:SomeOne 提问时间:4/5/2020 更新时间:4/5/2020 访问量:633
Javascript 中的灯泡不亮
Light Bulb in Javascript doesn't Turn On
问:
<!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>
按钮不起作用,即灯泡不亮。我在谷歌上搜索,没有找到任何解决方案。我做错了什么?
答:
0赞
Rayon
4/5/2020
#1
HTMLMediaElement.src 属性反映 HTML 媒体元素的 src 属性的值,该属性指示要在元素中使用的媒体资源的 URL。
您应该使用元素的属性,而不是使用 property,该属性不是 URL,而是分配的值。src
getAttribute
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.src
document.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”替换了“==”,它起作用了。谢谢你们的帮助。
评论