Javascript Onclick(此)选择第一个元素,而不是当前元素

Javascript Onclick(此)选择第一个元素,而不是当前元素,javascript,jquery,this,Javascript,Jquery,This,我有一张这样的图片列表 <ul class="image-list"> <li class="image-icon"><a onclick="showImg(this)"><img src="/gallery/latest/1.jpg"/></a></li> <li class="image-icon"><a onclick="showImg(this)"><img src="/

我有一张这样的图片列表

<ul class="image-list">
    <li class="image-icon"><a onclick="showImg(this)"><img src="/gallery/latest/1.jpg"/></a></li>
    <li class="image-icon"><a onclick="showImg(this)"><img src="/gallery/latest/2.jpg"/></a></li>
    <li class="image-icon"><a onclick="showImg(this)"><img src="/gallery/latest/3.jpg"/></a></li>
    <li class="image-icon"><a onclick="showImg(this)"><img src="/gallery/latest/4.jpg"/></a></li>
    <li class="image-icon"><a onclick="showImg(this)"><img src="/gallery/latest/5.jpg"/></a></li>
</ul>
showImg()

函数显示img(img){
document.getElementById(“照片”).innerHTML=“”;
$(“照片”)。向下滑动(500);
}
函数
showImg()
获取
this>img的
src
attr,并将图像放入另一个div。问题是,
this
仅选择第一个图像src。你知道为什么吗


谢谢

使用
作为上下文,而不是上下文选择器

$(“img”,img).attr(“src”)

此外,您还可以简化代码:

$("#photo").html('<img src="'+$("img", img).attr("src")+'" />').slideDown(500);

您正在向jQuery传递
这个
,它是一个[HtmlanchoreElement]

img+“img”
可能会给你
[htmlanchorement]img

你想要的是

$("img", img)

也可以发布jQuery代码?你的标记是有效的。顺便说一句,你在第二行末尾缺少了一个
。@Fabrício matté是的,这是在复制/粘贴过程中不知何故发生的。如果你只想创建与原始元素相同的另一个元素,你也可以
克隆图像元素。
$('#photo').html($('img', img).clone()).hide().slideDown(500);
$("img", img)