0

我正在尝试获取放置在我单击的链接之前的图像的 src:

<ul id="grid">
        <li><a href="prod-det.php" class="tip" rel="product-tip.php"><img src="../upload/mainmenu-articolo-ico.jpg" width="110" height="115"><p>GSE29KGYCSS / GSE29KGYCWW</p></a>
        <div class="options">
            <a href="#briciole" class="opt-compare off">Compare</a>
            <a href="#briciole" class="opt-wish off">Wishlist</a>
        </div></li>

并写下这条路径:

$('.options a').click(function() {
 $("#compare .myge-grid").append(closest('img').attr('src'));

但我无法获得 img src。有人可以请我指出正确的方向吗?提前 tks

编辑:这里有更多代码http://jsfiddle.net/X2NBn/1/

4

2 回答 2

1

更新:
根据您的文档结构,这就是您要查找的内容:

$("img", $(this).parents('li:first')).attr("src");

注意:attr("src")返回HTML 源代码src 中定义的 ('../upload.png')。如果您想要完整路径,请.prop("src")改用。


旧答案
您应该定义要在其上使用该.closest()方法的 JQuery 对象。

目前,您使用的不是 jQuery.closest方法,而是一个(可能未定义的)closest()函数。

添加后,这应该按预期工作$(this)

$('.options a').click(function() {
    $("#compare .myge-grid").append($(this).closest('img').attr('src'));

于 2011-10-11T16:04:42.060 回答
0

closest不是魔法。这并不意味着“视觉上最接近”。意思是“最近的祖先”。而不是每次单击元素时都搜索列表项,如 Rob W 的回答,您最好迭代列表项,并将单击处理程序依次绑定到每个项,如下所示:

$('#grid li').each(function() {
    var item = $(this);
    item.find('.options a').click(function() {
        $("#compare .myge-grid").append(item.find('img').attr('src'));
    });
});
于 2011-10-11T16:37:33.877 回答