【发布时间】:2019-03-26 21:52:53
【问题描述】:
我有一个与此类似的列表,我想对其进行排序。它需要按数据顺序排序,父级在前,子级在后。
数据顺序为 1 的父级
数据顺序为 1 的子级
数据顺序为 2 的子级
数据顺序为 3 的子级
数据顺序为 2 的父级
数据顺序为 1 的子级
数据顺序为 2 的子级
例子:
<li class='category parent-category' data-order='1' data-categoryId='5' data-parentCategoryId=''>
<a>Business Basics</a>
</li>
<li class='category parent-category' data-order='2' data-categoryId='2' data-parentCategoryId=''>
<a>Back Office Basics</a>
</li>
<li class='category child-category' data-order='1' data-categoryId='3' data-parentCategoryId='5'>
<a>Core Business</a>
</li>
<li class='category child-category' data-order='2' data-categoryId='4' data-parentCategoryId='5'>
<a>Product</a>
</li>
想要的结果:
<li class='category parent-category' data-order='1' data-categoryId='5' data-parentCategoryId=''>
<a>Business Basics</a>
</li>
<li class='category child-category' data-order='1' data-categoryId='3' data-parentCategoryId='5'>
<a>Core Business</a>
</li>
<li class='category child-category' data-order='2' data-categoryId='4' data-parentCategoryId='5'>
<a>Product</a>
</li>
<li class='category parent-category' data-order='2' data-categoryId='2' data-parentCategoryId=''>
<a>Back Office Basics</a>
</li>
这是我目前所拥有的:
$(document).ready(function()
{
var orderedCats = $(".category").sort((a, b) =>
{
if ($(a).hasClass("parent-category")) {
var aCategory = $(a).data("categoryid");
} else {
var aCategory = $(a).data("parentcategoryid");
}
if ($(a).hasClass("parent-category")) {
var aOrder = 0;
var order = $(a).data("order");
} else {
var aOrder = $(a).data("order");
}
if ($(b).hasClass("parent-category")) {
var bCategory = $(b).data("categoryid");
} else {
var bCategory = $(b).data("parentcategoryid");
}
if ($(b).hasClass("parent-category")) {
var bOrder = 0;
} else {
var bOrder = $(b).data("order");
}
return (aCategory * 1000 + aOrder) - (bCategory * 1000 + bOrder);
});
$(".categories").html(orderedCats);
});
我的想法是将父母数据顺序乘以 1000,如果是孩子,则将其订单 ID 添加到父母。
父母 1000, 2000, 3000, ...
儿童 1001, 1002, ... , 2001, 2002, ...
但我不知道如何将孩子的 parentcategoryid 属性与父母的 categoryid 关联起来。
【问题讨论】:
标签: javascript jquery