0

我目前有以下系列的 JQuery 选择器:

$(this).parent().parent().children('a').children('img').attr('src')

它工作得很好,但有没有更紧凑的方法来做到这一点?

更新

这是我的 HTML 结构:

<div class="preview">
    <a><img src="#"></a>
    <div class="info">
        <div class="item">This is where we start.</div>
    <div>
</div>
4

3 回答 3

3

考虑到您的初始条件,这将起作用,无论具体的标记如何:'

$(this).parent().siblings('a').children('img').attr('src')
于 2012-07-30T20:53:22.820 回答
2

您可以执行以下操作:

$(this).closest('.preview').find('a img').attr('src')

最近的文档| 查找文档

于 2012-07-30T20:52:57.967 回答
0

使用该 HTML,一种方法是:

$(this).parents(".preview").find("a img").attr("src");

您还可以轻松地:

$(this).parent().prev().children("img").attr("src");

虽然,如果您可以使用 HTML5,我的建议是在开始元素 div 中添加一个 data-ref,如下所示:

<div class="item" data-ref="#imgID-1">This is where we start.</div>
// and of course add an id to the img
<img id="imgID-1" src="blah.png" />

然后你可以很容易地回忆为:

var source = $($(this).data("ref")).attr("src");
于 2012-07-30T20:55:02.970 回答