2017-12-30 18 views
1

Ich habe z. 8 DIV (Bilder enthalten) in einer Reihe. Mein Problem ist, dass ich in der Lage sein werde, eine neue Zeile nach X zu erhalten (diese Zahl ist in einem Schieberegler eingestellt) DIV's. Im Falle dieser 8 DIVs möchte ich nach z. 4 DIVs.Wie wählt man die ersten X DIV

Mein divs wie folgt aussehen:

<div id="table-cell-x" class="table-cells"><img src="...."></div> 

Wo x = 1 -> 8

Das Ergebnis I ist (im Falle von 8 DIVs und X bis 4 gesetzt) ​​werden soll:

<div class="table-rows"> 
    <div id="table-cell-1" class="table-cells">div1</div> 
    <div id="table-cell-2" class="table-cells">div2</div> 
    <div id="table-cell-3" class="table-cells">div3</div> 
    <div id="table-cell-4" class="table-cells">div4</div> 
</div> 

<div class="table-rows"> 
    <div id="table-cell-5" class="table-cells">div5</div> 
    <div id="table-cell-6" class="table-cells">div6</div> 
    <div id="table-cell-7" class="table-cells">div7</div> 
    <div id="table-cell-8" class="table-cells">div8</div> 
</div> 

ich versuchte es mit:

$('div.table-cells':lt(4)).append('<div class="table-row"></div>'); 
$('div.table-cells':gt(4)).append('<div class="table-row"></div>'); 

Aber das hat nicht funktioniert ........ können Sie mir bitte helfen mit diesem Problem ....

Grüße, John

+0

wie ich es verstehe, Sie wollen: '$ ('div.table-cells: eq (3)'). nach ('

'); ' –

+0

Thx ...... war ein Tippfehler beim Hinzufügen meiner Frage. Versuchte den Selektor auch, indem er eine css "Hintergrundfarbe" hinzufügte, anstatt div-construction anzuhängen. Hintergrund-Farbe wurde nicht angezeigt, so dass der Selektor immer noch nicht korrekt ist. – user1939338

+0

Das Ergebnis, das ich will, ist:

Und nach 4-Zellen (x> = 5):
user1939338

Antwort

2

Was ich komme zu verstehen, dass Sie jede 4 div.table-cells wollen nach innen eingewickelt ein Behälter table-row div.

Wenn ja, dann unten tun: -

$(document).ready(function(){ 
 
    var $child_div = $("div.table-cells"); 
 
    for (var i = 0; i < $child_div.length; i += 4) { 
 
     var $parent_div = $("<div/>", { 
 
      class: 'table-row' 
 
     }); 
 
     $child_div.slice(i, i +4).wrapAll($parent_div); 
 
    } 
 
});
.table-row{ 
 
background:grey; 
 
margin-bottom:20px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="table-cell-1" class="table-cells">div1</div> 
 
<div id="table-cell-2" class="table-cells">div2</div> 
 
<div id="table-cell-3" class="table-cells">div3</div> 
 
<div id="table-cell-4" class="table-cells">div4</div> 
 
<div id="table-cell-5" class="table-cells">div5</div> 
 
<div id="table-cell-6" class="table-cells">div6</div> 
 
<div id="table-cell-7" class="table-cells">div7</div> 
 
<div id="table-cell-8" class="table-cells">div8</div>

Referenz: -

.wrapAll() | jQuery API Documentation

+0

Ich verstehe, dass OP nur ein DIV hinzufügen möchte. Übrigens scheint er eine Tabellenzeile nach einer Tabellenzelle anhängen zu wollen. Seine Frage ist sehr unklar für mich –

+0

@ A.Wolff ich habe meine Annahme sowie Code auch bearbeitet –

+0

Ya, das macht mehr Sinn als was OP fragte :) –

Verwandte Themen