玉:循环通过每4个元素,改变类

时间:2014-06-12 04:46:06

标签: javascript html node.js pug

我正在构建一个步进音序器,我想使用Jade将一个子组中的每个4个元素分组。到目前为止,我只能使用所需的类获得每个 nth 元素,但我知道有一种方法可以做到这一点。唯一的限制是我需要跟踪循环中的当前索引(从1到32),以便我可以正确地向每个id元素添加唯一的input

到目前为止我的代码,每个n+2元素的格式都很奇怪:

- for (var i = 0; i < steps; i++)
                - if (i % 4 === 0 || altGroup % 2 === 0)
                  - stepClass="step even"
                  - altGroup++
                - else
                  - stepClass="step"
                input(type="checkbox", class = "#{stepClass}", id = "channel#{index}-step#{i}")
                label(for = "channel#{index}-step#{i}")
                  span.hook ^

See the pen here

1 个答案:

答案 0 :(得分:1)

根据上面的交换,我将每个子组分成一个span元素,并使用类sub-group使其更清晰。请参阅更新的CodePen here

关键逻辑总结如下:

- for (var i = 0; i < steps/4; i++)
    - if (altGroup % 2 == 0)
        - stepClass = "step"
    - else
        - stepClass = "step even"
    span.sub-class
        - for (var j=0; j < groupSize; j++)
            input(type="checkbox", class = "#{stepClass}", id = "channel#{index}-step#{i}")
            label(for = "channel#{index}-step#{i}")
                span.hook ^
        - altGroup ++;

注意:我假设组大小是常量并将其作为变量添加。