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)