Перенос содержимого с помощью div после каждого h2

#jquery

#jquery

Вопрос:

Кто-нибудь может подсказать мне несколько идей, как я могу обертывать любое содержимое тегом <div> after каждого <h2> и присваивать ему уникальный идентификатор, выполняемый с помощью jquery?

Я пытаюсь это сделать:

 <h2>Test</h2>
 <div id="wrap_1"> // This is the wrapper im trying to add
   <p>Bla bla</p>
   <p>More Bla bla</p>
 </div>
<h2>Another test</h2>
 <div id="wrap_2"> // This is the wrapper im trying to add
   <p>Bla bla</p>
   <p>More Bla bla</p>
 </div>
  

Заранее спасибо

Ответ №1:

Вот так:

 $('h2').each(function(index) { 
    $(this).nextUntil('h2').wrapAll('<div id="wrap'   index   '"></div>');
});
  

ДЕМОНСТРАЦИЯ

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

1. Это работает, за исключением первого next() . Его там не должно быть. @SLaks: вы пропускаете то div , что должно быть добавлено с помощью jQuery. Я создал этот jsfiddle с помощью кода @SLaks и внес изменения: jsfiddle.net/marcosfromero/d2aQn

2. @marco: Да; я только что исправил это и сделал свою собственную демонстрацию. Я ошибочно думал, что это nextUntil включает текущий элемент.

3. Спасибо вам, ребята! Но на моей тестовой странице это выглядит странно. Он помещает два div вместо одного! вот так code<div id="wrap0"><div id="wrap0"><p>TEst</p></div></div>

4. @dut: Какая у вас тестовая страница? Вы запускаете этот код дважды?

5. @SLaks: так странно … это тот же код! я попробовал это на fiddle, и все работает нормально, но когда я кодирую это в блокноте, это не jsfiddle.net/dutraveller/qgrXP