2014-09-30 3 views
5

У меня есть тег статьи, в котором есть элементы.Как обернуть все элементы внутри div после определенного элемента? (JQuery)

Проблема: Как я могу обернуть все элементы внутри div после определенного элемента?

Это текущий код:

<article> 
    <figure class="thumbnail"> 
      <img src="src_to_img" /> 
    </figure> 

     <h2>Name: Test Name</h2> 
     <div class="description"></div> 
     <div class="content"></div> 
     <div class="content"></div> 
     <div class="more"></div> 
<article> 

выход должен быть:

<article> 
    <figure class="thumbnail"> 
      <img src="src_to_img" /> 
    </figure> 

     <div class="description-wrap"> 
     <h2>Name: Test Name</h2> 
     <div class="description"></div> 
     <div class="content"></div> 
     <div class="content"></div> 
     <div class="more"></div> 
     </div> 
<article> 

Как вы можете видеть .. окончательный вывод имеет все элементы, завернутые в class="description-wrap" после <figure></figure>

+5

'$ ("цифра ~ *") wrapAll ("

")' Если несколько, то выбрать каждый 'article' и работать на каждом из них. – 2014-09-30 16:58:11

+1

согласен с @squint, с хорошим решением –

ответ

4

Как показано в @squint, jQuery имеет wrapAll метод, который может это сделать, если в сочетании с next-siblings-selector~

$("article > figure ~ *").wrapAll("<div class='description-wrap'></div>") 

однако, это не дает вам желаемый результат, если у вас есть несколько статей. Вместо этого мы должны использовать .each() так:.

$("article > figure").each(function(){ 
 
    $(this).siblings().wrapAll("<div class='description-wrap'></div>") 
 
});
.description-wrap {border:1px dotted red;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<article> 
 
    <figure class="thumbnail"> 
 
      <img src="src_to_img" /> 
 
    </figure> 
 

 
     <h2>Name: Test Name</h2> 
 
     <div class="description"></div> 
 
     <div class="content"></div> 
 
     <div class="content"></div> 
 
     <div class="more"></div> 
 
</article> 
 
    
 
    <article> 
 
    <figure class="thumbnail"> 
 
      <img src="src_to_img" /> 
 
    </figure> 
 

 
     <h2>Name: Test Name</h2> 
 
     <div class="description"></div> 
 
     <div class="content"></div> 
 
     <div class="content"></div> 
 
     <div class="more"></div> 
 
</article>

+0

Привет, Moob .. Спасибо за ответ ... У меня есть четыре тега статьи .. когда я запускаю ваш код .. он беспорядок весь css .. знаете ли вы о другой настройке? – Redshot

+0

Дох. Не думал об этом. См. Обновленный ответ. – Moob

+0

Спасибо Moob !! Ты восхитителен!!!! – Redshot

Смежные вопросы