2016-08-22 1 views
0

Ich versuche, alle Divs, die nach einem bestimmten Element kommen zu wickeln. Wie kann ich dies mit jQuery tun?Wrap alle Elemente mit einem div nach einem bestimmten Element mit jQuery

aktuelle Code

<div class="a"></div> 
<div class="b"></div> 
<div class="b"></div> 

<div class="a"></div> 
<div class="b"></div> 
<div class="b"></div> 

<div class="a"></div> 
<div class="b"></div> 
<div class="b"></div> 

gewünschte Ausgabe

<div class="a"></div> 
<div class="wrapper"> 
    <div class="b"></div> 
    <div class="b"></div> 
</div> 

<div class="a"></div> 
<div class="wrapper"> 
    <div class="b"></div> 
    <div class="b"></div> 
</div> 

<div class="a"></div> 
<div class="wrapper"> 
    <div class="b"></div> 
    <div class="b"></div> 
</div> 
+0

Ich nehme an, du downvote gewesen, weil Sie didn‘ t zeigen Sie irgendeinen Code an, den Sie versuchen zu produzieren. Wie einige andere Leute sagen werden. Wir sind nicht hier, um für Sie zu kodieren, sondern zeigen Ihnen Ihre Fehler. – ssbb

Antwort

1

Sie wickeln Element für jeden .a schaffen könnten, fügen Sie alle Elemente bis zum nächsten .a Elemente und dann auf DOM hinzufügen.

$('.a').each(function() { 
 
    var wrap = $('<div class="wrapper"></div>'); 
 
    $(this).nextUntil('.a').appendTo(wrap); 
 
    $(this).after(wrap); 
 
})
.wrapper { 
 
    border: 1px solid black; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="a">A</div> 
 
<div class="b">B</div> 
 
<div class="b">B</div> 
 

 
<div class="a">A</div> 
 
<div class="b">B</div> 
 
<div class="b">B</div> 
 

 
<div class="a">A</div> 
 
<div class="b">B</div> 
 
<div class="b">B</div>

1

Wenn es immer 2 .b, könnten Sie den folgenden Code verwenden:

$('.a').each(function() { 
 
    $(this).next('.b').next('.b').andSelf().wrapAll('<div class="wrapper"/>'); 
 
});
.wrapper { 
 
    border: 1px solid black; 
 
    }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="a">A</div> 
 
<div class="b">B</div> 
 
<div class="b">B</div> 
 

 
<div class="a">A</div> 
 
<div class="b">B</div> 
 
<div class="b">B</div> 
 

 
<div class="a">A</div> 
 
<div class="b">B</div> 
 
<div class="b">B</div>

Verwandte Themen