jQuery .after()试图“纠正”我插入的html。我怎么阻止这个?

时间:2011-08-24 16:09:21

标签: javascript jquery html

我试图将一个长的无序列表拆分成这样的小块:

$('.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>是否有效。

请参阅:http://jsfiddle.net/MGHt5/

1 个答案:

答案 0 :(得分:7)

我没有特别担心开放标签和关闭标签,而是使用.wrapAll()<ul>标签包裹在包含5个<li>的jQuery对象周围。您可以使用.slice()<li>抓取thisList的块。