【发布时间】:2011-08-24 16:09:20
【问题描述】:
我正在尝试将一个长长的无序列表分解成更小的部分,如下所示:
$('.cList').each(function() {
var thisList = $(this).find('li')
var thisLen = thisList.length
for(var x=0;x<thisLen;x++) {
if((x % 5)==0&&x>0) {
$(thisList).eq(x).after("</ul><ul>")
}
}
})
我最终得到的是这样的:
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
<ul></ul> <---- I want the list to end and start, not make a nested list
而不是这个:
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
</ul><ul> <--- like this
就好像插入 </ul><ul> 不是有效的 HTML 并且 jQuery 以某种方式决定 <ul></ul> 是有效的。
【问题讨论】:
-
当你让 jQuery 插入 HTML 时,它会从给定的 HTML 中创建一组 DOM 元素,然后插入这些 DOM 元素。因此,在您的示例中,
</ul>是多余的。<ul>生成一个新列表,并将其插入到 DOM 中。因此,如果你想分解一个列表,你将不得不创建一个新列表,从旧列表中删除列表项,将它们添加到新列表中,然后在当前列表之后插入新列表. -
副本中的代码对我有用。
标签: javascript jquery html