2013-08-02 106 views
-5

的一個實例我在jQuery中遇到.index()函數的問題。的three S IN two用戶點擊,則顯示threeB S的一個.index()僅適用於類

<div class="one"> 
    <div class="two"> 
     <div class="three"></div> 
     <div class="three"></div> 
     <div class="three"></div> 
    </div> 
    <div class="threeB"></div> 
    <div class="threeB"></div> 
    <div class="threeB"></div> 
</div> 

<div class="one"> 
    <div class="two"> 
     <div class="three"></div> 
     <div class="three"></div> 
    </div> 
    <div class="threeB"></div> 
    <div class="threeB"></div> 
</div> 

<div class="one"> 
    <div class="two"> 
     <div class="three"></div> 
     <div class="three"></div> 
     <div class="three"></div> 
    </div> 
    <div class="threeB"></div> 
    <div class="threeB"></div> 
    <div class="threeB"></div> 
</div> 

根據該方法:

DOM的概要。我想用.index()函數來做到這一點,但除了第一個函數外,它都失敗了。在第二個one類中,兩個three具有索引3和4(而不是期望的0和1)。另一方面,.eq()threeB似乎按照要求工作。

任何整潔的方式來解決這個問題,而不必計算div之前有多少three

+3

你爲什麼不告訴我們您所使用的選擇,告訴我們你是什麼實際*試圖*選擇? – George

+0

哪裏是你標記的jQuery代碼,但沒有jQuery – 2013-08-02 10:52:08

回答

1

它是這樣工作:

$('.three').click(function(){ 
    $(this).parent().parent().find('.threeB').eq($(this).index()) 
     .css('background','green'); 
}); 

入住這裏:jsFiddle