-1

所以,我有一个像这样的图像列表..

<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>

显示图像()...

function showImg(img) {
    document.getElementById("photo").innerHTML = "<img src='"+$(img+" img").attr("src")+"'/>";
    $("#photo").slideDown(500);
}

该函数showImg()获取srcattrthis > img并将图像放在另一个 div 中。问题是,this只选择第一个图像 src。任何想法为什么?

谢谢!

4

2 回答 2

1

this用作上下文,而不是上下文选择器。

$("img", img).attr("src")

此外,您可以简化代码:

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

多亏了 Fabrício Matté,进一步简化了:

$('#photo').html($('img', img).clone()).hide().slideDown(500);
于 2012-07-16T03:15:25.383 回答
1

您正在将this[HTMLAnchorElement] 传递给 jQuery

img+" img"可能会给你[HTMLAnchorElement] img

你想要的是

$("img", img)
于 2012-07-16T03:16:58.983 回答