如何关闭当前ul并使用jquery启动新的ul?

时间:2011-07-02 09:57:22

标签: php jquery

请参阅下面的代码:使用PHP代码动态生成ul范围。在第二个跨度后,我关闭当前ul并开始新的ul。我怎么能用jquery做到这一点?

<ul class="menutop" id="menutop">
  <span id="show_dynamic_0">    
    <li class="item1 active root" id="item1 active root">
      <a id="a-1309599451911317" class="orphan item bullet" href="http://localhost/health_phase2/">
        <span>Home</span>
      </a>
    </li>
  </span> 
  <span id="show_dynamic_1">    
    <li class="item2 root" id="item2 root">
      <a id="a-1309599451912733" class="orphan item bullet" href="/health_phase2/index.php">
        <span>News Feed</span>
      </a>
    </li>
  </span> 
  <!--Here I want to end menutop ul. After than start new ul. Means end current ul and start new ul --> 
  <!-- </ul><ul>  -->
  <span id="show_dynamic_2">    
    <li class="item6 root" id="item6 root">
      <a id="a-1309599451912287" class="orphan item bullet" href="/health_phase2/index.php?option=com">
        <span>Video</span>
      </a>
    </li>
  </span> 
  <span id="show_dynamic_3">    
    <li class="item7 root" id="item7 root">
      <a id="a-1309599451913684" class="orphan item bullet" href="/health_phase2/index.php?option=com_content">
        <span>Interviews</span>
      </a>
    </li>
  </span> 
</ul>

3 个答案:

答案 0 :(得分:1)

您可以detach index > 1之后的元素,将它们包装在<ul>中并将它们插入上一个<ul>之后:

$('#menutop > span:gt(1)').detach().wrapAll('<ul />').parent().insertAfter("#menutop");

示例:http://jsfiddle.net/niklasvh/eWVvQ/

答案 1 :(得分:0)

你可以这样做:

$("#menutop").after( $("<ul/>").append($("#show_dynamic_1").nextAll()) );

它的作用如下:
- 创建一个新的ul - “剪切”#show_dynamic_1之后的跨度并将它们插入到创建的ul中 - 在#menut ul。

之后插入新的ul

希望这会有所帮助。干杯

答案 2 :(得分:0)

我认为这不是HTML代码中应该存在的方式。首先,您不需要在<li>中包装<span>

......这个解决方法是什么?

如果您浏览PHP中的数组或JavaScript中的对象,可以说您希望在第2个和第3个</ul><ul>之间呈现<span>