使用JavaScript更新图像src?
我有一个图像(使用JavaScript更新图像src?,javascript,html,image,Javascript,Html,Image,我有一个图像(img.png),它的内容在组合框更改后更改 问题是,当我更改页面上的组合框时,图像的内容没有更改 我尝试像这样使用JavaScript: function SwitchPic(pic) { pic.src = "img.png"; } 而img标签是: <img src='img.png' id='img1' name='img1'> 组合框标记为: <select name="users" onchange="show(this.value);
img.png
),它的内容在组合框更改后更改
问题是,当我更改页面上的组合框时,图像的内容没有更改
我尝试像这样使用JavaScript:
function SwitchPic(pic) {
pic.src = "img.png";
}
而img
标签是:
<img src='img.png' id='img1' name='img1'>
组合框标记为:
<select name="users" onchange="show(this.value);SwitchPic(img1);">
<option value="">Select a Number:</option>
<option value="a">a</option>
<option value="b">b</option>
<option value="c">c</option>
</select>
选择一个号码:
A.
B
C
它在我第一次更改选项时起作用,但当我重新更改选项时,它会保留图像而不更改它
如何解决此问题?您试图将图像标记作为
smg1
传递,但您没有声明这是您的图像元素
试试这个:
SwitchPic('img1');
然后在处理程序中:
function SwitchPic(picID) {
var pic = document.getElementById(picID);
pic.src = "img.png";
}
在这种情况下,您将传递要更改的元素的ID,然后获取处理程序中的实际元素。两个问题:
img1
。您需要传递图像的ID,然后使用该ID获取节点document.getElementById()
获取图像,然后每次都需要切换:
var clicked = false;
function SwitchPic(pic) {
var image = document.getElementById(pic);
if(!clicked){
image.src = "otherImg.png";
clicked = true;
}else{
image.src = "img.png";
clicked = false;
}
}
我认为你的问题在于:
希望有帮助 可能只是缓存问题 不只是使用文件名,而是向其添加一个随机部分,如“img.png?random”,这样您将强制浏览器在服务器上再次查找图像,但是?random部分将被丢弃,并且仍然会找到该文件
最简单的方法是在扩展后添加日期/时间您的函数没有选择dom元素它是如何工作的?同样,实际图片已更改,但仍然是网页上的旧图片您希望将图片更改为什么?我刚刚注意到,您的原始图像和您尝试更改的图像都被命名为“img.png”。是否希望显示与下拉列表中所选选项相匹配的图片?否,有其他程序每次更改图片
img.png
时都会更改图片onchanged
操作,函数show()
调用它您可以发布show()
函数的代码吗?我认为这个函数中可能有一些东西没有按您期望的方式运行。@user78050其他程序每次更改图片img.png
,这是什么意思。。?你能发布show()
方法代码吗?我有相同的图片,不是original.png和img.png放在一起,只有img。png@user78050我不知道你的目录是什么样子,所以我无法引用图像的名称:original.png
只是一个例子。你想根据下拉列表中选择的内容创建图像吗?我想说的是我有一个image@user78050我明白你在上面对Scunlife所说的:我同意show
功能可能是这里的问题,你也应该发布它。简单地说,你不能再次请求image.png,浏览器会认为它已经缓存了图像,并继续显示相同的图像,因此,与其要求image.png,不如要求image.png?20140905155610(例如),只需使用var d=new Date();var image='image.png?'+d.getmillizes();图.src(图像)代码>,它应该可以解决您的问题