2016-05-16 13 views
1

I持って次のコード:jQueryで2つの要素のグループをラップする方法は?

<span>Hello</span> 
<span>Hello</span> 
<span>Hello</span> 
<span>Hello</span> 
<span>Hello</span> 
<span>Hello</span> 

が、私はこの中にそれを変更したい:

<div> 
    <span>Hello</span> 
    <span>Hello</span> 
</div> 
<div> 
    <span>Hello</span> 
    <span>Hello</span> 
</div> 
<div> 
    <span>Hello</span> 
    <span>Hello</span> 
</div> 

私はこれをどのように行うことができますか?

+1

なぜdownvotes?確かにそれは有効な質問ですか? – think123

+0

あなたはすでにこれを達成しようとしたことを何も示していません。 – jwatts1980

+0

@ jwatts1980私は通常、この問題が非常に双極性であることを発見しました - 私は全体を持っていたか、これをどうやって行うのか全く分かりませんでした。 – think123

答えて

1

更新

使用このコードの代わりに - それは、親内の子要素の位置に依存しないよう、それは、より汎用性の高いです:

var odds = $("span:odd"); 
var evens = $("span:even"); 
var i = 0; 
odds.each(function() { 
    $(this).add(evens[i]).wrapAll('<div></div>'); 
    i++; 
}); 

はでそれを考え出しましたオンライン検索のビット:

$("span:nth-child(odd)").each(function() { 
    $(this).add($(this).next()).wrapAll('<div></div>'); 
}); 

span:nth-child(odd)は毎秒<span>が選択されることを意味します。 $(this).add($(this).next())は現在の<span>と次のものを選択し、次に.wrapAll<div>タグにまとめてラップします。

希望すると助かります!

+0

@Pang私の間違い - 私は数えることができません:) – think123

+0

私はそれを試してこの答えは動作していないようです。 '(odd)'と 'prev()'、 '(偶)'と 'next()'のどちらかを使うべきです。ダブルチェックできますか? – Pang

+0

それは動作します - [ここではフィドルです](+ https://jsfiddle.net/tohs1crb/)+1と思う+1 – gibberish

0

あなたはこのように、)(.sliceでそれを行うことができます。

var divs = $("div>div"); 
for(var i = 0; i < divs.length; i+=2) { 
    divs.slice(i, i+2).wrapAll("<div class='new'></div>"); 
} 
関連する問題