我有以下代码:
countSetNumbers = ->
for field, i in $(".exercise .nested-fields")
set = $(field).find('.set')
set.html(i+1)
问题是我有多个.exercise div,而不是每个练习被隔离在集合#的数量......它将所有练习统计为一个整体。因此,如果练习1有3组,练习2有1.第一组练习2将被标记为4
。我该怎么做才能使每一个都算得独一无二?
答案 0 :(得分:1)
您的问题是,当您说:
时,您将所有.nested-fields
元素混合成一堆
$(".exercise .nested-fields")
您需要分别考虑每个.exercise
。一种简单的方法是将选择器分成两半并使用嵌套循环:
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)