Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS:如何更改图像引用结束值_Javascript_Image - Fatal编程技术网

Javascript JS:如何更改图像引用结束值

Javascript JS:如何更改图像引用结束值,javascript,image,Javascript,Image,我希望该方法通过名称fx显示相关图像,而不是使用大量if语句。单击BlackPicture4.gif将其转换为WhitePicture4.gif。图片的编号将传递给该方法 我是javascript新手,所以索引[]可能不像我想象的那样工作 我有一系列的白色照片: imgArray[1] = new Image(); imgArray[1].src = "WhitePicture1.gif"; ... function changePicture(int) { var image

我希望该方法通过名称fx显示相关图像,而不是使用大量if语句。单击BlackPicture4.gif将其转换为WhitePicture4.gif。图片的编号将传递给该方法

我是javascript新手,所以索引[]可能不像我想象的那样工作

我有一系列的白色照片:

imgArray[1] = new Image();
imgArray[1].src = "WhitePicture1.gif"; 
...

    function changePicture(int)
{ 

var image = document.getElementById('Img' + int); //works

image.src = imgArray[int]              //doesn't work

var thefile = "imgArray" + int + ".gif" //also doesn't work
image.src = thefile;                

}
我尝试了很多不同的方法,但是我需要帮助

html:  //as requested, but that works fine
    <img id="Img1" onclick="changePicture(1)" src="Blackpicture1.gif" width="50" height="50" >
    <img id="Img2" onclick="changePicture(2)" src="Blackpicture2.gif" width="50" height="50" >
    ...
html://按要求,但效果很好
...
编辑:通过将.src添加到“=imgaray[int]”解决了该问题
另一件我没有想到的事情是,我必须在函数中分配数组元素,而不是仅仅在文件的顶部,我认为只有声明才能进行。

在本例中,具有
id='1'
的pic将转换为具有
id='2'
的pic:

$(“img”)。单击(函数(){
var x=$(this.attr(“id”);
x++;
变量y=$(“#”+x).attr(“src”);
$(this.html(“”);
$(this.html(“”);
});

我想你想做的可能是

function changePicture(int){
    document.getElementById('Img'+int+'').setAttribute('src',imageArray[int].src);
}
这可能行得通,我不确定

imgArray[1] = new Image();
imgArray[1].src = "WhitePicture1.gif";
var x;
function changePicture(x) {
var image = document.getElementById('Img' + x);
image.src = imgArray[x].src;
}

你能为这个做一把小提琴吗?我发现很难理解您试图实现的目标。首先,我需要找到需要更改的映像,即以(int)结尾的任何映像,并将其分配给var映像。然后我需要将image.src更改为我数组中位置为(int)的图像,因为它对应于该图像“单击BlackPicture4.gif将其转换为”-已经有一个工作的
click
事件处理程序绑定到该图像?我不知道如何使用fiddle,尤其是在我电脑上的图片点击它只是一个简单的方法调用changePicture(1)你在哪里找到了问题中的
jQuery
标记或引用?请注意,如果你有一个以上的图片,你可以通过保持一个不同id的id来切换到它。jQuery是一个javascript库,你可以使用jQuery来做这件事,这更简单,但是如果你只需要javascript,很抱歉,正如“javascript”标记的描述所说,“除非还包括框架/库的另一个标记,否则应该是纯JavaScript的答案。“话虽如此,您显示的代码将不起作用,因为您试图将单击的img的内部html设置为另一个img,并且img元素不能包含其他元素。好的,它知道现在要更改什么图片,但在尝试添加新图片时,我收到错误:“get”file:///C:/.../undefined 找不到“.但是imgaray[int]不应该是未定义的吗?确定在该路径上仍然有该图像吗?正如我所说的,它将是image.src=imgArray[1].src.Oh,我在末尾缺少了.src!就这样!thanksIt在两个答案都正确的情况下做出了艰难的选择,但由于您将其保留为我的格式,并花时间在jquery和javascript中完成了这项工作:)