2012-07-30 44 views
0

我公司目前有以下系列jQuery选择的:合并母公司()和子女()选择在JQuery中

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

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

UPDATE

这里是我的HTML结构:

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

总是存在。它只取决于你的HTML结构。你能发布相关的HTML吗? – 2012-07-30 20:47:26

+0

好的,我发布了HTML(简体)。 – 2012-07-30 20:54:21

+1

我认为这样做可以做到最快的方式,而不用担心性能命中将会是'$(this).parents('。preview')。find('img')。attr('src')' – Ohgodwhy 2012-07-30 20:54:42

回答

3

这样的工作给你的初始条件,无论具体的标记:”

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

像一个魅力。谢谢! – 2012-07-30 21:04:07

0

随着该HTML,一个办法是:

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

你也很容易做到:

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

虽然,如果您可以使用HTML5,我的建议将如下添加一个数据裁判开始元素DIV:

<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");