javascript - jQuery 正在交换我插入的标签

标签 javascript jquery html

我有以下 HTML:

<ul>
  <li></li>
  <li></li>
  <li></li>
</ul>

和以下 jQuery 代码:

$('> ul li', body).each(function()
{
  $('</ul><ul>').insertBefore($(this));
});

此代码应在每个列表项前面插入一个结束标记,然后插入一个无序列表的开始标记,但它插入了 <ul></ul>。 .这些都是错误的方法!为什么 jQuery 会这样做,有人知道如何解决这个问题吗?

最佳答案

包装每个liul并删除原始外部 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/

相关文章:

javascript - javascript跨浏览器二进制数据处理

javascript - 按住鼠标循环播放某些内容

javascript - 获取 JSON 文件的 AJAX 调用返回空值

javascript - 带有对象引用选择器的 jQuery parents()

javascript - setTimeout放置在 header 中,我如何限制运行1次

javascript - jQuery 选择器中使用的函数参数

jquery - 从 jquery 中的 .ajax() 函数获取数据

php - 将 CSS 添加到 php 文件的最佳方法?

javascript - 使用类和 ID 在 jquery 中用另一个图像替换图像

html - 垂直响应时如何防止子 div 与父 div 重叠的边距