使用Javascript将多个LI拆分为UL

时间:2010-11-20 11:49:41

标签: php javascript prototypejs task-parallel-library

我需要用javascript将多个LI分成两个UL。

我只能编辑的代码是模板文件:

[foreach array="nodes" as="node"]
  <li>
   <a href="%prefix%view/%node.id%" [if expr="%node.id%==%id% || %node.id%==%parent_id%"]  class="hoofdmenuactief"[/if]>%node.title%</a>
            %node.subnodes_html%
  </li>
[/foreach] 

PHP无法添加到此文件中,因此我想用JavaScript解决此问题:

<ul>
  <li><a href="#">Item 1</a></li>
  <li><a href="#">Item 2</a></li>
  <li><a href="#">Item 3</a></li>
  <li><a href="#">Item 4</a></li>
  <li><a href="#">Item 5</a></li>
  <li><a href="#">Item 6</a></li>
</ul>

我希望Javascript统计UL内部的LI并使用LI的2来获得UL的

结果应为:

<ul>
 <li><a href="#">Item 1</a></li>
  <li><a href="#">Item 2</a></li>
  <li><a href="#">Item 3</a></li>
</ul>
<ul>
  <li><a href="#">Item 4</a></li>
  <li><a href="#">Item 5</a></li>
  <li><a href="#">Item 6</a></li>
</ul>

该网站使用Prototype。 有人知道这个例子或我应该如何开始? 在此先感谢!!

1 个答案:

答案 0 :(得分:1)

我认为您可以在模板中执行此操作。我只使用Smarty,所​​以你必须在语法

上连接点
[LET nodesLen = nodes.length]
[LET countSoFar = 0]
[foreach array="nodes" as="node"]     --attributes for key? name? could be helpful
  <li>
    <a href="%prefix%view/%node.id%"]>%node.title%</a>
  </li>
[countSoFar++]
 [if countSoFar >= nodesLen / 2]
  <ul>
  </ul>
 [/if]
[/foreach] 

聪明的theres smarty..iteration会自动执行我用countSoFar显示的内容。看看你的模板引擎能够做什么,以及如何实现我在上面概述的内容。

我认为你不需要原型或任何javascript来做这件事,这似乎是一个更容易被tpl处理的问题