Как обернуть несколько экземпляров выбранных элементов в новые <div> - PullRequest
1 голос
/ 04 декабря 2011

Мне нужно обернуть div с классами .left и .right в новый div.Возникают проблемы с выполнением этой работы так, как мне нужно.

Это оригинальная разметка:

<div class="content-main">
  <div class="summary" id="listing_summary_3547">
    <div class="share"></div>
    <div class="left"></div>
    <div class="right"></div>
  </div>
  <div class="summary" id="listing_summary_12739">
    <div class="share"></div>
    <div class="left"></div>
    <div class="right"></div>
  </div>        
  <div class="summary" id="listing_summary_4">
    <div class="share"></div>
    <div class="left"></div>
    <div class="right"></div>
  </div>
</div>

Вот результат, который мне нужен:

<div class="content-main">
   <div class="summary" id="listing_summary_3547">
      <div class="share"></div>
      <div class="summary-inside">
         <div class="left"></div>
         <div class="right"></div>
      </div>
   </div>
   <div class="summary" id="listing_summary_12739">
      <div class="share"></div>
      <div class="summary-inside">
         <div class="left"></div>
         <div class="right"></div>
      </div>
   </div>
   <div class="summary" id="listing_summary_4">
      <div class="share"></div>
      <div class="summary-inside">
         <div class="left"></div>
         <div class="right"></div>
      </div>
   </div>
</div>

Скрипттег должен находиться внутри тегов (нет доступа к разделу).Версия jQuery 1.3.2

Самым близким, который я могу получить самостоятельно, является:

    $('.summary .left,.summary .right').wrapAll('<div class="summary-inside"></div>')

Однако результат неправильный, элементы собираются вместе, а не распределяютсятакими, какими они мне нужны.

1 Ответ

5 голосов
/ 04 декабря 2011

Это сейчас протестировано и действительно работает:

$('.content-main .summary').each(
    function(){
        $(this).find('.left,.right').wrapAll('<div class="summary-inside"></div>');
    });

JS Fiddle demo .

Текст в связанном демо, показывающий HTMLВы хотите обновленный html элемента .content-main, после манипуляции с jQuery 1.3.2.

...