如何在 jQuery 中为所有子节点添加单个父元素



我有这个下面的代码工作正常。但是,在这种情况下,当单击第一个元素 [节点 1] 时,它被复制到目标div 但没有父级"UL"。当我直接单击子节点时,也会发生同样的情况。我的意思是,如果我单击节点 1.1、节点 1.2 等,那么这些应该在单个"UL"元素中捕获。即,

下面应该改为

`<li><span>Node 1.1</span></li><li><span>Node 1.2</span></li>` 

(这就是我现在得到的)如

<UL><li><span>Node 1.1</span></li><li><span>Node 1.2</span></li></UL>

如果也选择"节点 1",也应该发生同样的情况。

知道吗?请帮忙。

http://jsfiddle.net/fjaLsnLh/7/请在此小提琴链接上进行修改。

使用 jquery 的 wrapAll

$('li').wrapAll('<ul></ul>');

JSFIDDLE: http://jsfiddle.net/fjaLsnLh/12/

你可以使用 jquery 方法 wrapAll() 来实现这一点。

语法:

$(selector).wrapAll(wrappingElement);
$('li').wrapAll('<ul></ul>');

例如:

$(document).ready(function() {
  $("button").click(function() {
    $("li").wrapAll("<ul></ul>");
  });
});
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<body>
  <UL>
    <li><span>Node 1.1</span>
    </li>
    <li><span>Node 1.2</span>
    </li>
  </UL>
  <button>Wrap a div element around all p elements</button>
</body>

只需直接将<li>s添加到<ul>而不是<div>。无需包装等...

http://jsfiddle.net/fjaLsnLh/11/