javascript - 根据数据属性将列表项分组为子列表

标签 javascript jquery html

我想附加 <li>来自一个<ul>到另一个<ul>那是即时创建的。我想根据 data-group 将列表项分组到新的子列表中属性。

<ul id="sortable1">
    <li data-group="A">test</li>
    <li data-group="A">test1</li>
    <li data-group="B">test2</li>
    <li data-group="B">test3</li>
    <li data-group="C">test4</li>
</ul>

基本上我试图遍历这个列表并抓取所有 <li>从每个组,然后将其移动到另一个 <ul> .

这是我目前所做的,但我没有得到预期的结果。我过去曾在 Excel 中完成过此操作,但无法使其与 jQuery 一起使用。

var listItems = $("#sortable1").children("li");
listItems.each(function (idx, li) {
    var product = $(li);
    //grab current li
    var str = $(this).text();

    if (idx > 0) {
        //append li
        str += str;
        if ($(this).data("group") != $(this).prev().data("group")) {
            //I should be getting  test and test1. 
            //but alert is only giving test1 test1. 

            alert(str);
            //need to break into groups
            //do something with groups
        }
    }
});

最佳答案

这样的事情怎么样:

$(function() {
    var sortable = $("#sortable1"),
        content = $("#content");

    var groups = [];
    sortable.find("li").each(function() { 
        var group = $(this).data("group");
        if($.inArray(group, groups) === -1) {
            groups.push(group);
        }
    });
    
    groups.forEach(function(group) { 
        var liElements = sortable.find("li[data-group='" + group + "']"),
            groupUl = $("<ul>").append(liElements);
        content.append(groupUl);
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="sortable1">
    <li data-group="A">test</li>
    <li data-group="A">test1</li>
    <li data-group="B">test2</li>
    <li data-group="B">test3</li>
    <li data-group="C">test4</li>
</ul>

<div id="content">    
</div>

希望我没有误会你。

关于javascript - 根据数据属性将列表项分组为子列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26824625/

相关文章:

javascript - 使用 ng-repeat 更改按 Angular 单击的按钮的 css 类

javascript - HTML 表格循环遍历每一行

javascript - Body bgcolor 属性权重

jquery - 使用选定的复选框进行分页。复选框仅适用于当前分页页面。 jQuery 数据表

jquery - 在小屏幕上重新排列容器位置的流体布局

javascript - 如何在 angularjs 中使用 ng-repeat 以表格格式引入嵌套的项目数组?

javascript - <pre> 标签内的文本未换行

javascript - jquery ui 自动完成动态生成的输入元素

javascript - 使用 pixi.js 进行适当的文本缩放?

javascript - 减少显示提示(如 img 的标题)的延迟