jQuery — Перенос элементов после одного div и перед другим

#jquery #html

#jquery #HTML

Вопрос:

У меня есть этот html

 <div class="sbox">
<div class="top-sbox"></div>
<h3>Menu</h3>
    <ul class="subpages">
    <li><a href="#">Subpagina</a></li>
    <li><a href="#">Subpagina</a></li>
    <li><a href="#">Subpagina</a></li>
    <li><a href="#">Subpagina</a></li>
    <li><a href="#">Subpagina</a></li>
    <li><a href="#" class="last">Subpagina</a></li>
    </ul>


<div class="bottom-sbox"></div>
</div>
  

Как я могу перенести все элементы после div.top-sbox и перед div.bottom-sbox.
Спасибо!

Я хочу этот результат:

 <div class="sbox">
<div class="top-sbox"></div>
<div id="wrapper">
<h3>Menu</h3>
    <ul class="subpages">
    <li><a href="#">Subpagina</a></li>
    <li><a href="#">Subpagina</a></li>
    <li><a href="#">Subpagina</a></li>
    <li><a href="#">Subpagina</a></li>
    <li><a href="#">Subpagina</a></li>
    <li><a href="#" class="last">Subpagina</a></li>
    </ul>
</div>  
<div class="bottom-sbox"></div>
</div>
  

Комментарии:

1. обернуть их во что? насколько точно вы имеете в виду? потому что существует множество способов сделать это = D

2. перенос в div или любой элемент. Я отредактировал свой вопрос!

Ответ №1:

Вот вы где.

Редактировать: извините. Еще проще: http://jsfiddle.net/ajRd2/1 /

 $('.top-sbox').nextUntil('.bottom-sbox').wrapAll('<div class="dwrap" />'); 
  

Комментарии:

1. 1 nextUntil Было хорошим улучшением jQuery 1.4. Хороший ответ.

2. Спасибо! Я не знал о .nextUntil, круто! Я также добавил это: $ (‘.top-sbox’).each(функция() для плавной работы с большим количеством div!

Ответ №2:

Попробуйте простой: $('.top-sbox').after('<div>');
$('.bottom-sbox').after('</div>');

да, гораздо более приятный ответ выше, используй этот =)

Комментарии:

1. Лучше, если вы можете ввести div в dom, а не добавлять текст в разметку дважды.