2013-03-15 6 views
1

나는 다음과 같은 코드가 있습니다 문제는각 필드에 대해 계산되는이 열거자를 분리하는 방법은 무엇입니까?

countSetNumbers = -> 
    for field, i in $(".exercise .nested-fields") 
    set = $(field).find('.set') 
    set.html(i+1) 

내가 여러 .exercise div가 광고 대신 각 운동은 세트 #의 년대의 양에 고립되고 ... 그것으로 함께 모든 운동을 세고을 덩어리. 운동 1에 3 세트가 있고 운동 2에 1이있는 경우 운동 2의 첫 번째 세트는 4으로 표시됩니다. 각자가 고유하게 계산되도록하려면 어떻게해야합니까?

$(".exercise .nested-fields") 

당신은 개별적으로 각 .exercise을 고려할 필요가있다 : 당신이 말할 때

답변

1

귀하의 문제는 당신이 하나 개의 더미로 모든 .nested-fields 요소를 매쉬업하고 있다는 점이다.

countSetNumbers = -> 
    for ex in $('.exercise') 
    for nf, i in $(ex).find('.nested-fields') 
     $(nf).find('.set').html(i + 1) 

이 같은 HTML 구조 뭔가 가정 :

<div class="exercise"> 
    <div class="nested-fields"> 
     <div class="set"></div> 
    </div> 
    <!--...--> 
</div> 
<!--...--> 

데모 : http://jsfiddle.net/ambiguous/LekpV/

당신을 그렇게하는 한 가지 간단한 방법은 반으로 선택을 깨고 중첩 루프를 사용하는 것입니다 jQuery 스타일로도 할 수 있습니다.

countSetNumbers = -> 
    $('.exercise').each -> 
    $(@).find('.nested-fields').each (i) -> 
     $(@).find('.set').html(i + 1) 

데모 : http://jsfiddle.net/ambiguous/Au7rs/1/

+0

대단히 감사합니다. 감사합니다. –

관련 문제