以前的第一个img src - jQuery

时间:2011-10-11 16:01:45

标签: jquery path image src jquery-traversing

我正在尝试获取在我点击链接之前放置的图像的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。 有人能指点我正确的方向吗? 事先提前

编辑:此处更多代码http://jsfiddle.net/X2NBn/1/

2 个答案:

答案 0 :(得分:1)

更新:
根据您的文档结构,这是您正在寻找的:

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

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

<小时/> 旧答案
您应该定义要使用.closest()方法的JQuery对象。

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

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

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

答案 1 :(得分: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'));
    });
});