Как я могу обернуть ровно половину div с другим div, используя jquery или javascript
у меня есть это
<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>
Попробуйте использовать это:
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/