【发布时间】:2010-07-10 19:26:19
【问题描述】:
假设我们有一个看起来像这样的多级 html 列表:
<ul class="catalog">
<li>
<ul>
<li>
<ul>
<li>subcat subcat 1</li>
<li>subcat subcat 2</li>
<li>subcat subcat 3</li>
</ul>
</li>
<li>subcat 2</li>
<li>subcat 3</li>
</ul>
</li>
<li>
<ul>
<li>subcat 4</li>
<li>subcat 5</li>
<li>subcat 6</li>
</ul>
</li>
</ul>
我只需要将属于列表第一级的<li>标签(hamed“header 1”、“header 2”...及其所有子级)包装到一个div中。
结果应该是:
<ul class="catalog">
<div class="myWrapper">
<!-- Added by JQuery -->
<li>
<ul>
<li>
<ul>
<li>subcat subcat 1</li>
<li>subcat subcat 2</li>
<li>subcat subcat 3</li>
</ul>
</li>
<li>subcat 2</li>
<li>subcat 3</li>
</ul>
</li>
<li>
<ul>
<li>subcat 4</li>
<li>subcat 5</li>
<li>subcat 6</li>
</ul>
</li>
</div>
<!-- Added by JQuery -->
</ul>
我尝试了wrap() 功能,但没有按预期工作
对如何完成这项工作有任何想法吗?
【问题讨论】:
-
好吧,你可以这样做......但这不是有效的 HTML,你的最终目标是什么?
-
你的
<ul>应该在<li>里面,就像这样:<li>header1 <ul> ...many li tags ...</ul></li><li>header2</li> -
Nick Craver:我在 stackoverflow 上的第一篇文章,抱歉已修复
-
@volocuga - 我指的是标记 :) 你不能在
<ul>中使用<div>,<ul>在<ul>中也是如此,它们必须是在孩子<li> -
Nick Craver:你是对的,已编辑
标签: javascript jquery html tags html-lists