Jquery Complex包裹未包含的项目组

时间:2012-11-15 21:28:00

标签: javascript jquery wrapall

我正在尝试使用一组标题和列表,并单独包含它们,以便我可以设置它们的样式。即:

<h2>Title 1</h2>
<ul>
  <li>Item 1</li>
  <li>Item 2</li>
  <li>Item 3</li>
</ul>
<h2>Title 2</h2>
<ul>
  <li>Item 1</li>
  <li>Item 2</li>
  <li>Item 3</li>
</ul>

我尝试使用.before().afterdiv标记之前添加h2,并在每个ul之后关闭它,但我发现了jquery自动清理和关闭标记。所以我猜我需要使用wrap()而不确定如何将标题和列表组合在一起。

2 个答案:

答案 0 :(得分:4)

使用

$('h2').each(function(){
   var self = $(this);
   self.add( self.next() ).wrapAll('<div/>');
});

演示http://jsfiddle.net/gaby/e4f9h/

答案 1 :(得分:0)

您想要创建包含这两个元素的jQuery集合。为此,您将选择h2元素。你需要找到一个ul next()元素。在您将两者链接起来之后,您将wrapAll()与您的包含div。

$("h2").each( function(){
   var h2 = $(this);
   h2.add(h2.next("ul")).wrapAll('<div class="madWrapper"></div>');             
});​​​​​​

jsFiddle