2017-01-17 6 views
0

DOM操作とjQueryの基本的な経験はありますが、既存のコンテナ内に新しいdivコンテナを3番目と最後のdivに挿入する方法を理解しようとしています。お子様の数はdivです。私はnth-childセレクタを使用すると思いますが、それ以上は得られません。私は手動で新しいコンテナを追加しますが、子のdivはページのロード時に生成されます。ありがとう!divでコンテナの部分を動的にラップする

既存の構造:

<div id="primary-cont"> 
    <div class="child"></div> 
    <div class="child"></div> 
    <div class="child"></div> 
    <div class="child"></div> 
    <div class="child"></div> 
    <div class="child"></div> 
</div> 

所望の構造:

<div id="primary-cont"> 
    <div class="child"></div> 
    <div class="child"></div> 
    <div class="child"></div> 
    <div id="secondary-cont"> 
    <div class="child"></div> 
    <div class="child"></div> 
    <div class="child"></div> 
    </div> 
</div> 

答えて

1

はいn番目の子は、ページ上のjQueryを使用している場合は、これを行うための正しい方法は、ここで私は何をするのかされています:

$('#primary-count .child:nth-child(n+4)').wrapAll("<div id='secondary-cont'></div>"); 

これはどのように機能しますか?

#primary-count divとし、その中の.childはその中でチャイルドになります。それ以降は単純に4となります。

しかし、ページ上のコンテンツをどのように取得するかによって、これを行う最良の方法ではない場合があります。ループを使用してdivあなたはこれらの線に沿って何かを使用することができますたとえば

$count = 1; 
foreach($children as $child) 
{ 
    if ($count%4 == 1) 
    { 
     echo "<div>"; 
    } 
    echo $kicks->brand; 
    if ($count%4 == 0) 
    { 
     echo "</div>"; 
    } 
    $count++; 
} 
if ($count%4 != 1) echo "</div>"; 
+0

ありがとうございました!私のページにはPHPは含まれていませんが、もし6つ以上の子divがある場合、これは動作しますか?課題の一部は、金額が異なることです。 –

+0

それは6までカウントアップするので、ページに5しかなければ、それは5番になり、それまで包み込みます。 –

+0

私は可能性として私の例では6つを使用しましたが、制作現場では制限はありません。 –

0

私はアンディの答えに基づいて構築し、私の所望の構造を達成するために.wrapAll()を使用:

$(document).ready(function() { 
    $('#primary-cont .child:nth-child(n+4)').wrapAll('<div id="secondary-cont"></div>'); 
}) 
0

これを行うには、slice() jQueryメソッドを使用することもできます。

$('#primary-cont div.child').slice(3,6).wrapAll("<div class='secondary-count'></div>"); 
関連する問題