如何隔离这个计算每个字段的枚举数?

时间:2013-03-15 05:13:51

标签: jquery coffeescript

我有以下代码:

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

问题是我有多个.exercise div,而不是每个练习被隔离在集合#的数量......它将所有练习统计为一个整体。因此,如果练习1有3组,练习2有1.第一组练习2将被标记为4。我该怎么做才能使每一个都算得独一无二?

1 个答案:

答案 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)

演示:http://jsfiddle.net/ambiguous/Au7rs/1/