Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.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 如何将图像对象传递到分配给它的onclick函数中?_Javascript_Html_Css - Fatal编程技术网

Javascript 如何将图像对象传递到分配给它的onclick函数中?

Javascript 如何将图像对象传递到分配给它的onclick函数中?,javascript,html,css,Javascript,Html,Css,抱歉,如果这个问题让人困惑,我是自学javascript。我正在动态生成图像缩略图,我希望能够在用户单击缩略图时放大图像。我创建图像标记并分配onclick函数的代码如下所示 var imageTag = "<img onclick=\"enlargeImage()\" class=\"thumb\" src=\"" + photoURL + "\" />"; document.getElementById("image-thumbnail").innerHTML = imageT

抱歉,如果这个问题让人困惑,我是自学javascript。我正在动态生成图像缩略图,我希望能够在用户单击缩略图时放大图像。我创建图像标记并分配onclick函数的代码如下所示

var imageTag = "<img onclick=\"enlargeImage()\" class=\"thumb\" src=\"" + photoURL + "\" />"; 
document.getElementById("image-thumbnail").innerHTML = imageTag;
var-imageTag=“”;
document.getElementById(“图像缩略图”).innerHTML=imageTag;
有了上面的代码,我的缩略图就会显示出来,当用户单击它时,就会调用
放大图像()
函数。我的问题是,如何访问在
enlargeImage()
函数中单击的图像对象?我尝试访问函数中的
this
对象,希望它指向单击的图像,但是
this
指向整个页面,而不是单击的图像。我希望能够访问
src
属性,以及更改图像缩略图的样式属性。我还应该注意到,最终会有多个图像,这就是为什么我需要这种动态行为


非常感谢您的帮助

有几种方法可以做到这一点。最简单的方法是简单地向
enlargeImage()
函数添加一个参数,并在调用它时向它传递一个
this
引用

var imageTag = "<img onclick=\"enlargeImage(this)\" class=\"thumb\" src=\"" + photoURL + "\" />";

我建议查看jQuery,因为它有很多包装器和处理程序来处理这些东西,而且最近势头很好

为了更具体地回答您的问题,您可以将“this”传递给您的函数:

var imageTag = "<img onclick=\"enlargeImage(this)\" class=\"thumb\" src=\"" + photoURL + "\" />";

功能放大图像(img)
{
var src=img.src;

}

就像你复制了我的答案一样。:-)
var imageTag = "<img onclick=\"enlargeImage(this)\" class=\"thumb\" src=\"" + photoURL + "\" />";
function enlargeImage(img){
  alert(img.src);
}