Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery将类似的项目分组为标题_Javascript_Jquery - Fatal编程技术网

Javascript jQuery将类似的项目分组为标题

Javascript jQuery将类似的项目分组为标题,javascript,jquery,Javascript,Jquery,我试图根据数据属性对相似的项目进行分组,分组时,它应该显示从每个项目的数据属性中提取的两个标题 到目前为止,我可以得到一个标题组名称,但无法附加第二个类型名称 任何帮助都将不胜感激 示例:尝试实现以下目标 jQueryfunction${ var$list=$‘组’; 变量列表={}; var$newLists=$; $list.children.each函数{ var group=$this.data'group'; 如果!列表[组]列表[组]=[]; 列出[组].pushthis; };

我试图根据数据属性对相似的项目进行分组,分组时,它应该显示从每个项目的数据属性中提取的两个标题

到目前为止,我可以得到一个标题组名称,但无法附加第二个类型名称

任何帮助都将不胜感激

示例:尝试实现以下目标

jQueryfunction${ var$list=$‘组’; 变量列表={}; var$newLists=$; $list.children.each函数{ var group=$this.data'group'; 如果!列表[组]列表[组]=[]; 列出[组].pushthis; }; $。每个列表、功能组、项目{ var$newList=$.appenditems.prepend+group+; $newLists=$newLists.add$newList; }; $list.replace为$newlist; }; 项目1 项目2 项目3 项目4 项目5 项目1 项目2 项目3 项目4 项目5
可能的解决办法是

jQueryfunction${ var$list=$‘组’; 变量列表={}; var$newLists=$; $list.children.each函数{ var group=$this.data'group'; 如果!列表[组]列表[组]=[]; 列出[组].pushthis; }; $。每个列表、功能组、项目{ var$newList=$.appenditems.prepend+group+ ++ $this.attrdata-type+ ; $newLists=$newLists.add$newList; }; $list.replace为$newlist; }; 项目1 项目2 项目3 项目4 项目5 项目1 项目2 项目3 项目4 项目5
下面是我如何为这样的需求编写代码的

使用$group>div选择所有目标div

迭代这些div,如果以前的类型或组值与当前值不匹配,则在div之前插入h3 group或h4 type

这会将代码压缩很多。下面是使用此逻辑时代码的外观:

var previousGroup = "";
var previousType = "";

$("#group > div").each(function() {
    var group = $(this).data("group");
    var type = $(this).data("type");

    if(previousGroup != group) {
        $(this).before("<h3>" + group + "</h3>");
        previousGroup = group;
    }

    if(previousType != type) {
        $(this).before("<h4>" + type + "</h4>");
        previousType = type;
    }
});
jQueryfunction${ var previousGroup=; var-previousType=; $group>div.eachfunction{ var group=$this.datagroup; var type=$this.datatype; ifpreviousGroup!=组{ $this.before+组+; 前一组=前一组; } ifpreviousType!=类型{ $this.before+type+; previousType=类型; } }; }; 项目1 项目2 项目3 项目4 项目5 项目1 项目2 项目3 项目4 项目5
var previousGroup = "";
var previousType = "";

$("#group > div").each(function() {
    var group = $(this).data("group");
    var type = $(this).data("type");

    if(previousGroup != group) {
        $(this).before("<h3>" + group + "</h3>");
        previousGroup = group;
    }

    if(previousType != type) {
        $(this).before("<h4>" + type + "</h4>");
        previousType = type;
    }
});