生成列表:具有多个条件的javascript函数

时间:2009-08-12 15:51:21

标签: javascript ajax spry

您不必熟悉spry语法,但我正在使用SPRY(AJAX小部件)并尝试编写一个函数来处理多个条件。

spry:when="{ds_CurrentRowNumber} == {ds_RowNumber} && {ds_RowNumber} < 4"

我想把它变成一个函数,每隔4个li标签在同一个div中生成一个新的ul标签,如:

 <ul spry:repeatchildren="ds1">
   <li spry:if="{ds_RowID} < 4 ">{item}</li>
 </ul>

 <ul spry:repeatchildren="ds1">   
   <li spry:if="{ds_RowID} > 4 && {ds_RowID} < 9  ">{item}</li>
 </ul>

这个功能会是什么样的?非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

通常使用模数运算符(百分号 - % - 在Javascript中)完成。

模数返回“除法后的余数”,它可以准确地告诉你何时击中新的“行”。

所以(完全不知道Spry)这样的事情:{ds_RowID}%4 = 0应该告诉你何时你处于一个新行 - 例如第4行的模数返回4%4的零(4分进入4的余数为零)。 5%4的模量为“1”,依此类推。

所以,基本上,当模数为零时,你会进行特殊处理(结束前一个列表 - 如果存在)并开始一个新的。

一些伪代码:

itemsPerRow = 4 开始第一行(

    ) 循环遍历所有项目    显示当前项目(
  • )    如果currentRow模数itemsPerRow为零    要么    如果currentRow是Last       结束行(
)       if currentRow&lt; totalRows - itemsPerRow          还有至少还有一行,开始下一行()       万一    万一 结束循环

如果您的索引从零而不是一开始,可能需要稍微更改一下,但我希望您明白这一点。