2011-03-06 85 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