使用Javascript更改图像src
Using Javascript to change an Image src
我有一段非常简单的代码,它应该改变我的img的img src称为innings。这很简单,onclick我调用函数changeImage
,并根据图像的当前src
,我将其更改为图像的下一次迭代。代码如下所示:
<script type="text/javascript" >
function changeImage() {
var mySrc = document.getElementById('inning');
alert(mySrc.src);
if (mySrc.src = "1st.png") {
alert('im in here');
mySrc.src = "2nd.png";
}
else if (mysrc.src = "2nd.png")
mysrc.src = "3rd.png";
else if (mysrc.src = "3rd.png")
mysrc.src = "4th.png";
else if (mysrc.src = "4th.png")
mysrc.src = "5th.png";
else if (mysrc.src = "5th.png")
mysrc.src = "6th.png";
else if (mysrc.src = "6th.png")
mysrc.src = "7th.png";
else if (mysrc.src = "7th.png")
mysrc.src = "8th.png";
else if (mysrc.src = "8th.png")
mysrc.src = "9th.png";
else if (mysrc.src = "9th.png")
mysrc.src = "10th.png";
else if (mysrc.src = "10th.png")
mysrc.src = "1st.png";
}
</script>
</head>
<body>
<center> <label>SlowPitch Player Rotation</label></center>
<br /><br />
<Center>
<img id="inning" src="1st.png"
onclick='changeImage()' />
</Center>
现在我遇到的问题是,每次我点击图像,changeImage()
函数击中警报,让我知道src
仍然是1st.png
;同时,我的第一个警报告诉我,我有2nd.png
作为我的src
。
您正在使用=
,这是分配。这个值被赋给了变量;在if语句中检查是否相等。使用==
(它们是否相等?)或===
(它们是否相等且类型相同?)
所有if (mySrc.src = "image_name") {
应为
if (mySrc.src == "1st.png") {
2 ==表示等于
1 =表示将值设置为
正如其他人所说,你的主要问题是没有使用正确的===
或==
进行比较,引用.src
属性将返回一个绝对路径,所以你的比较可能也不会因为这个原因而起作用。
这将从字符串中解析数字,而不是检查精确匹配,从而节省所有if/else
比较,一旦您有了数字,您可以通过直接索引到名称数组来获得下一个名称。
<script type="text/javascript" >
function changeImage() {
var names = ["1st", "2nd", "3rd", "4th", "5th", "6th", "7th", "8th", "9th", "10th"];
var mySrc = document.getElementById('inning');
// parse the number out of the existing .src string
var matches = mySrc.src.match(/('d+).*?'.png$/);
if (matches) {
// since array is 0 indexed and names are 1 indexed, we don't need to add one
// as it is already one more than it was
var num = parseInt(matches[1], 10);
if (num >= names.length) {
num = 0;
}
mySrc.src = names[num] + ".png";
}
}
</script>
仅供参考,如果您的文件名中只有数字(如img1.png
)而没有后缀,那么代码可能会更简单,因为您甚至不需要名称数组,因为您可以从前一个数字中生成新名称。
你的问题是,你没有比较两个值在你的if语句,而是分配一个值:
if (mySrc.src = "1st.png")
应该读
if (mySrc.src === "1st.png")
否则将"1st.png"赋值给mySrc。
相关文章:
- Javascript将图像src更改为淡入淡出
- 在字符串中查找所有图像 src URL 并存储在数组中
- 如何使用javascript和xpath获取图像src
- 使用带有变量的javascript更改图像src
- 用jquery抓取图像SRC-attr
- MVC5更改jquery脚本中的图像src
- 隐藏或删除图像 src=未定义
- JavaScript 动态更改图像 src 的位置 - NO JQuery
- 如何使用 jquery、声音/静音按钮更改图像 SRC onclick
- 有没有一种方法可以判断图像src是否在javascript内部返回null
- 更改图像src-dons't工作jquery/js
- 将图像加载到localStorage,并将图像src设置到该位置
- 需要多次使用getElementById来更改图像src
- 如何更改多个图像的图像src
- 加载后修改页面上所有没有id的图像(src)
- 带有图像 src 的 JavaScript 点击事件
- 如果屏幕宽度 <= 699,则交换图像 src
- 更换部分图像 src
- 从没有jQuery的字符串中获取图像src
- 保存图像 src 的功能不起作用