javascript - 关闭一个 div 并开始一个新的

标签 javascript jquery dom-manipulation

我有一个项目列表,我想将它们放在多个列中。根据一系列因素,这些列可以是任意的,因此还有其他一些事情在发生。不幸的是,我在如何关闭包含的 div 上被骗了。

假设我有这样的结构:

<div class="col-md-4 JS-columnGrid">
    <li>one</li>
    <li>two</li>
    <li>three</li>
<!--</div>-->
<!--<div class="col-md-4">-->
    <li>four</li>    
</div>

我想在第三个列表元素之后关闭 col-md-4 div,并将第四个列表元素包装在另一个 div class="col-md-4">

这将创建两列。

这里有一些 javascript 可以抓取每个列表,将其放入一个数组中,然后我的意图是我可以使用该数组来决定我要在何处剪切该列。

   var cutoffArray = [];
    $(".JS-columnGrid > li").each(function(){
        cutoffArray.push(this);
        console.log(cutoffArray);
    });

    $(cutoffArray[3]).before("</div><div class='col-md-3'>");

不幸的是,这是之后的输出 HTML:

<div class="col-md-4 JS-columnGrid">
    <li>one</li>
    <li>two</li>
    <li>three</li>
    <div class="col-md-3"></div>
    <li>four</li>    
</div>

我哪里错了?

最佳答案

// select and remove all the elements you want to re-package
var $lis = $(".col-md-4.JS-columnGrid li").remove(), 
    i,
    divs = [];

$(".outer-container").empty();

// slice into packs of three and append each pack to container
for (i = 0; i < $lis.length; i += 3) {
    $("<div class='col-md-3'></div>")
        .append( $lis.slice(i, i + 3) )
        .appendTo(".outer-container");
}

关于javascript - 关闭一个 div 并开始一个新的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31679339/

相关文章:

javascript - 使用 jQuery,如何使用 "live"方法在添加新元素时发出警报?

javascript - Bootstrap 4 工具提示未按样式显示。而且它仅适用于 anchor 标记

javascript - LiveScript 与 Meteor.js

JavaScript : Pushing a value of checkbox if checked and the value of not checked together

javascript - CircleType 文本在 rotateY 之后删除空格

php - 将 url 编码实体更改为 html 字符?

javascript - ng-repeat 不反射(reflect)源变量何时被修改

javascript - 我在尝试使用 RegExp 匹配电子邮件地址时犯了什么错误?

javascript - jQuery 选择器在修改 DOM 后不起作用

jquery - 根据所选选项的宽度自动调整 SELECT 元素的大小