2011-10-14 79 views
1

就像標題所說的那樣,我需要在div內包裝一些div。這是HTML。使用jQuery將div封入到wrapper div

<div class="something1 message"> 
<span class="message-text">This is notification 1</span> 
<input type="text" /> 
</div> 

<div class="something2 message"> 
<span class="message-text">There can be multiple texts like this</span> 
<span class="message-text">There can be multiple texts like this</span> 
<span class="message-text">There can be multiple texts like this</span> 
<input type="text" /> 
</div> 

<div id="content-wrapper" class"message"> 
<span class="message-text">Anotherexample</span> 
<span class="message-text">There can be multiple texts like this</span> 
<input type="text" /> 
</div> 

現在我想什麼,輸出是:

<div class="something1 message"> 
<div class="message-text-wrapper"> 
    <span class="message-text">This is notification 1</span> 
</div> 
    <input type="text" /> 
    </div> 

    <div class="something2 message"> 
<div class="message-text-wrapper"> 
    <span class="message-text">There can be multiple texts like this</span> 
    <span class="message-text">There can be multiple texts like this</span> 
    <span class="message-text">There can be multiple texts like this</span> 
</div> 
    <input type="text" /> 
    </div> 

    <div id="content-wrapper" class"message"> 
<div class="message-text-wrapper"> 
    <span class="message-text">Anotherexample</span> 
    <span class="message-text">There can be multiple texts like this</span> 
</div> 
    <input type="text" /> 
    </div> 

基本上所有的「消息文本」跨度是invidual消息div中會我們包裹在裏面消息文本wrappe DIV。

希望你明白。

+0

你打算把'單跨度'還是'多跨度',看起來你們都混在一起了。 – Deeptechtons

回答

1

這是行得通嗎?這是未經測試的。但是像這樣...

$('.message-text:nth-child(1)').each(function(){ 
$(this).nextAll('.message-text').andSelf().wrapAll("<div class='message-text-wrapper'></div>"); 
}): 
+0

幾乎可以工作。它創建兩個消息文本包裝器,另一個包裝一切。 – user995317

+0

只需稍做更改即可完成工作。謝謝! – user995317

+0

你有什麼變化,所以我可以更新我的答案? –

4

使用jQuery's wrapAll() function

$('.message-text').wrapAll("<div class='message-text-wrapper' />"); 

這裏的a working fiddle

編輯:

按照您的指示在評論,下面的代碼將包裝在div每個單獨的元素。小提琴也進行了更新。

$('.message-text').wrap("<div class='message-text-wrapper' />"); 
+0

是的,我實際上已經嘗試過,但是它包裹了所有內部包裝。在輸出中我想要的是多個不同的包裝。 – user995317

+0

@ user995317,我誤解了要求。見上面的編輯。 –