【问题标题】:previous first img src - jQuery以前的第一个 img src - jQuery
【发布时间】:2011-12-05 10:55:32
【问题描述】:

我正在尝试获取放置在我单击的链接之前的图像的 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/

【问题讨论】:

    标签: jquery path image src jquery-traversing


    【解决方案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'));
    

    【讨论】:

    • 感谢 Rob,我已经尝试过这个解决方案,但它不起作用 :( 为清楚起见,在主代码中,我单击 #options div 中的 2 个 之一。跨度>
    • .closest() 寻找最近的祖先。您正在寻找兄弟姐妹。
    • 非常感谢罗伯!所以“父母”返回直到找到 li,然后扫描“li”内容以查找 src。非常非常有帮助!再次感谢!
    • +1 不知道我可以为此使用prop()。谢谢!
    • @Lanny:请注意,它通常更有效且更具可扩展性,以避免大量“返回直到找到”查询,而是在绑定事件处理程序的过程中获取父对象,如在我的回答中。
    【解决方案2】:

    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'));
        });
    });
    

    【讨论】:

    • 埃里克,谢谢你,我完全明白你在说什么。而且我同意你的观点,所以处理复杂的操作更容易(它也可能更容易记忆)。
    • 确定不是惯用语,而不是助记符?
    • :) 我的意思是“容易记住”——一旦你理解了基本概念。
    猜你喜欢
    • 1970-01-01
    • 2010-12-22
    • 1970-01-01
    • 2012-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-25
    • 2011-09-27
    相关资源
    最近更新 更多