2013-08-02 5 views
-5

나는 .index() 함수에 문제가있어. DOM의.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> 

따라 어떤은 twothree s의 사용자 클릭은 threeB들 중 하나가 표시된다. 나는 .index() 함수로 이것을하고 싶었지만 첫 번째 것을 제외하고는 모두 실패했습니다. 두 번째 one 클래스에서 두 개의 three은 (원하는 0과 1 대신에) 인덱스 3과 4를가집니다. 한편, threeB에 대한 .eq()은 원하는대로 작동하는 것처럼 보입니다.

문제가있는 div 전에 얼마나 많은 숫자를 넣지 않고도이 문제를 해결할 수있는 깔끔한 방법은 three입니까?

+3

왜 당신이 우리에게 당신이 사용하고있는 선택기를 표시하고 * 선택 *을 시도하고 당신이 실제로 무엇인지 말해주지 않는다? – George

+0

귀하의 jquery 코드는 귀하가 태그했지만 jquery는 없습니다. –

답변

1

이 같은 노력하고 있습니다 :

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

확인 여기 : jsFiddle

관련 문제