2013-07-08 33 views
2

我有幾個DIV如下:包裹格數與其他分區中的Jquery

<div id='id1'>blabla</div> 
<div id='id2'>blabla</div> 
<div id='id3'>blabla</div> 
<div id='id4'>blabla</div> 
<div id='id5'>blabla</div> 
<div id='id6'>blabla</div> 

而且我想,以包裹在div我指定添加一個新的div(<div id='newdiv'>); 例如在'id3'之前和'id5'之後。 所以我們得到:

<div id='id1'>blabla</div> 
<div id='id2'>blabla</div> 
<div id='newdiv'> 
<div id='id3'>blabla</div> 
<div id='id4'>blabla</div> 
<div id='id5'>blabla</div> 
</div> 
<div id='id6'>blabla</div> 

你知道jQuery代碼來做到這一點?

在此先感謝!

回答

0

在有點着急的,所以這是未經測試,但這樣的事情?

$("#id3, #id4, #id5").wrapAll('<div id="newdiv" />'); 

編輯:哦,該死的,看起來像卡爾安德烈毆打我吧!

3

可能是一個簡單的插件,以使其更加靈活,可重複使用:

$.fn.customWrap = function (end, wrapperDivAttr) { 
    this.nextUntil(end).next().addBack().add(this).wrapAll($('<div/>', wrapperDivAttr)); 
} 

$('#id3').customWrap('#id5', { id: 'newDiv'}); // call the function on the startelement, specify the end elements selector and attribute obj. 

nextUntil讓所有的div直到結束的div,然後旁邊的選擇結束的div的歡迎,並addback()將之前的元素(nextUltl)添加到集合中,然後add()以選擇開始div,然後wrapAll其中。

Demo

+0

LOL:Pü做了一個插件:P –

+0

呀!你很酷! :P LOL:D –

+1

+1 ..以免差異答案:) –