2015-09-21 104 views
1

也許它是一種愚蠢的但它仍然不起作用。我,m試圖用另一個div包裝不同類的兩個div,但我當前的輸入只是自動關閉div。將兩個div分組在另一個

有幾組具有.panel標題和.panel-body類的div集合,它們有兩組。

我試圖用一個帶有.panel面板默認類的div來包裝每一對,但是我的代碼關閉了div,所以它只創建了兩個空的div。我不知道我的代碼有什麼問題。即時通訊使用jQuery

<html> 
<body> 
<div class="panel-head"></div> 
<div class="panel-body"></div> 
<div class="panel-head"></div> 
<div class="panel-body"></div> 
<div class="panel-head"></div> 
<div class="panel-body"></div> 
</body> 
</html> 

而jQuery的

$('div.panel-head').before (
'<div class="panel panel-default">'); 
$('div.panel-body').after ('</div>'); 

但這個代碼創建兩個div自動關閉和打開的標籤不是允許纏繞。我無法在智能手機上創建的jsfiddle監守IM和無法使用PC互聯網上,請別人見識一下如何繞過這一行爲

回答

3

我把這個從here

$(".panel-head").each(function() { 
    $(this).next(".panel-body").addBack().wrapAll("<div class='panel panel-default' />") 
}); 

編輯

它最初使用andSelf(),但它已被棄用,我改變它addBack()

+2

注意'andSelf'是有利於['addBack'(https://api.jquery.com/addBack/) –

+0

所以這個代碼將得到一流的的div棄用.panel-head在右邊有一個.panel-body div?我只是懷疑爲什麼索引是在函數值上設置的? –

+0

確實。 「索引」不是必需的,因爲它沒有被使用。我將刪除它。 –

0

希望這是你在找什麼。你將不得不做一些錯誤檢查(例如頭和身體的長度必須相同)。

// Get all heads and bodies 
 
var $phead = $('.panel-head'); 
 
var $pbody = $('.panel-body'); 
 

 
// loop to create default panel and insert head and body 
 
for (int i = 0; i < $phead.length; i++) 
 
    { 
 
    var h = $($phead[i]); 
 
    var b = $($pbody[i]); 
 
    
 
    // create new div 
 
    var d = $('<div />', class: 'panel-default'); 
 
    // append body and head 
 
    h.appendTo(d); 
 
    b.appendTo(d); 
 
    
 
    //append new div to body 
 
    $('body').append(d); 
 
}

+0

這個解決方案工作正常,但另一個調整得更好,但這個更適合處理更大的對象鏈,謝謝 –