обернуть несколько узлов с помощью div

0

Как я могу обернуть ровно половину 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>
Теги:

1 ответ

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/

  • 0
    Спасибо @Joe это сработало .. :-)
  • 0
    @Ram - рад, что это решило вашу проблему :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню