0

您不必熟悉 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>

这个函数会是什么样子?非常感谢任何帮助。

4

1 回答 1

0

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

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

所以(根本不知道 Spry)这样的东西: {ds_RowID} % 4 = 0 应该告诉你什么时候你在一个新的行 - 例如第 4 行的模数返回 4 % 4 of 0 (4 分为 4 有余数为零)。5 % 4 的模数将为“1”,依此类推。

因此,基本上,当模数为零时,您将进行特殊处理(结束前一个列表 - 如果存在)并开始一个新列表。

一些伪代码:

itemsPerRow = 4 开始第一行 (

    ) 遍历所有项目 显示当前项目 (
  • ) 如果 currentRow 模 itemsPerRow 为零或如果 currentRow 是最后一行 (
) if currentRow < totalRows - itemsPerRow 至少还有一行要走,开始下一行 () end if end if End Loop

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

于 2009-08-17T15:17:56.537 回答