2014-09-30 62 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

相关问题