2014-09-30 113 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,很好的解決方案 – 2014-09-30 17:00:10

回答

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 ..感謝您的答案...我有4條標籤..當我運行你的代碼..它擾亂了整個CSS ..你知道另一個調整呢? – Redshot 2014-09-30 17:09:43

+0

Doh。沒想到這一點。查看更新的答案。 – Moob 2014-09-30 17:16:02

+0

謝謝Moob!你真棒!!!! – Redshot 2014-09-30 17:18:55

相關問題