我有以下 HTML:
<ul>
<li></li>
<li></li>
<li></li>
</ul>
和以下 jQuery 代码:
$('> ul li', body).each(function()
{
$('</ul><ul>').insertBefore($(this));
});
此代码应在每个列表项前面插入一个结束标记,然后插入一个无序列表的开始标记,但它插入了 <ul></ul>
。 .这些都是错误的方法!为什么 jQuery 会这样做,有人知道如何解决这个问题吗?
最佳答案
包装每个li
在ul
并删除原始外部 ul
<罢工> $('ul li').wrap('').end().find('ul').unwrap('ul'); 罢工>
最终 html:
<body>
<ul><li></li></ul>
<ul><li></li></ul>
<ul><li></li></ul>
</body>
在行动中:http://jsfiddle.net/ZyMNn/
在提示重新思考了一下之后,更简单的应该可以工作:
$('ul').find('li').wrap('<ul/>').parent('ul').unwrap();
更新 fiddle :http://jsfiddle.net/ZyMNn/2/
关于javascript - jQuery 正在交换我插入的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16532806/