将两个div组合在一起

时间:2015-09-21 21:01:58

标签: javascript jquery html

也许它有点愚蠢,但它仍然无法奏效。我试图用另一个div包装两个不同类的div但是我当前的输入只是自动关闭div。

有几组div,其中.panel-heading和.panel-body类是两组。

我试图用.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,并且无法在电脑上使用互联网,请有人告诉我如何绕过这种行为

2 个答案:

答案 0 :(得分:3)

我从here获取了这个:

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

修改

最初使用了andSelf(),但已弃用,我使用addBack()更改了

答案 1 :(得分:0)

希望这是你正在寻找的东西。您将不得不进行一些错误检查(例如,头部和身体的长度必须相同)。

&#13;
&#13;
// 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);
}
&#13;
&#13;
&#13;