2011-03-06 69 views
3

的孩子像下面的每个统计块:jQuery选择为父母的前一个兄弟

<div class="stats"> 
    <div class="label"> 
    <span class="goal">10 YEARS OF SOMETHING GOOD</span> 
    </div> 
    <div class="stat"> 
    <div class="tri"></div> 
    </div> 
</div> 

我想要的tri的marginRight设置到以前goal宽度的一半。我会用哪个jQuery选择器来抓取相对于每个tri的前一个“目标”?

喜欢的东西..

$(function(){ 
    $('.tri').css({marginRight: function() { 
    return Math.floor($(this).something('.goal').width()/2) + 'px'; 
    }}) 
}) 

回答

5

用途:

$(this).parent().prev().find('.goal').width() 

这也适用于:

$(this).parents('.stats').find('.label > .goal').width() 
+0

真棒,谢谢!我不确定是否可以做一个父()。prev()。find()或它是否是一个链3. – arby 2011-03-06 01:59:53

+0

如果内部有多个(标签,统计)对,后者不起作用.stats。 – 2011-03-06 02:01:27

+0

@arby:当然,链接是让整个事情变得简单的原因;) – fabio 2011-03-06 02:01:54