1

特定の数の要素を でラップしようとしていdivます。問題は、要素の数がユーザーの入力に基づいて変化する可能性があることです。したがって、要素の数は 2、3、4、またはそれ以上になる可能性があります。ラップする要素の数を示す変数があります。たとえば、私のページには次のようなものがあります。

<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>

divここで、変数に基づいてそれらを別のものにラップする必要があります。したがって、変数が 3 の値を保持している場合、次のようになります。

   <div class="testing"> 
    <div class="test"></div>
    <div class="test"></div>
    <div class="test"></div>   
   </div>

   <div class="testing">
    <div class="test"></div>
    <div class="test"></div>
    <div class="test"></div>
   </div>

私はこのコードを使用していました:

$(this).add($(this).next())
       .add($(this).next().next())
       .wrapAll('<div class="testing"></div>');

問題は、そこにいくつの要素が存在するかを知る必要があることです。これを行う動的な方法はありますか?私もslice関数を見て、次のように使用しようとしました:

for(var i=0;i<img_cnt;i+=img_row){
    obj.children().slice(i,i+img_row).wrapAll('<div class="row"></div>');
}

しかし、それは機能していません。私は8div秒です。3 を一緒にラップする必要があるためdiv、最初の 2 に 3、最後の 2 に 3 を含む 3 つの新しい が必要です。これは 8 しかないためdivです。ただし、div最初の newdivで 3 秒を取得すると、次の 2div秒はまったくラップされず、最後の 3div秒は new でラップされdivます。なぜそれが正しくラップされていないのかわかりません。これを行う方法、またはより良い方法について何かアイデアはありますか?

4

1 に答える 1

5

childrenが変更されているため、コードが機能していません。slice定数セットで使用してみてください:

var all = $('.test'); 
for(i=0; i < all.length; i += img_row) {
   all.slice(i, i + img_row).wrapAll('<div class="row" />'); 
}

例: http: //jsbin.com/upaji

于 2010-01-10T09:46:42.830 に答える