用div包装多个节点

时间:2013-10-05 23:33:08

标签: javascript jquery

我如何使用jquery或javascript

将另一个div的一半div完全包裹起来

我有这个

<div class="post">1</div>
<div class="post">2</div>
<div class="post">3</div>
<div class="post">4</div>
<div class="post">5</div>
<div class="post">6</div>

我想要这个

<div class="wrap">
  <div class="post">1</div>
  <div class="post">2</div>
  <div class="post">3</div>
</div>    
<div class="wrap">
  <div class="post">4</div>
  <div class="post">5</div>
  <div class="post">6</div>
</div>

1 个答案:

答案 0 :(得分:2)

尝试使用:

var posts = $('.post'),
    postCount = posts.length,
    postHalf = Math.round(postCount/2),
    wrapHTML = '<div class="wrap"></div>';

posts.slice(0, postHalf).wrapAll(wrapHTML); // .slice(0, 3)
posts.slice(postHalf, postCount).wrapAll(wrapHTML); // .slice(3, 6) 

这将选择所有.post,获取找到的元素数量,然后将该值减半以获得分割点。然后,它使用.slice()选择特定范围的元素,并使用.wrapAll()将每个选项包装在<div class="wrap"></div>中。

这里有效:http://jsfiddle.net/ekzrb/