Javascript 排序函数以包含子项
我目前有一个函数,它可以根据类对div进行数字排序,但是在获取数据时,它不会假设为子类。以下是函数:Javascript 排序函数以包含子项,javascript,jquery,html,Javascript,Jquery,Html,我目前有一个函数,它可以根据类对div进行数字排序,但是在获取数据时,它不会假设为子类。以下是函数: $(document).ready(function () { var sortedDivs = $(".frame").find("div").toArray().sort(sorter); $.each(sortedDivs, function (index, value) { $(".sorted").append(value); }); }); function s
$(document).ready(function () {
var sortedDivs = $(".frame").find("div").toArray().sort(sorter);
$.each(sortedDivs, function (index, value) {
$(".sorted").append(value);
});
});
function sorter(a, b) {
return a.getAttribute('class') - b.getAttribute('class');
};
需要这样做:
<div class="frame">
<div class="5">
Div 5 here
<div class="sub">
Div 11 here
</div>
</div>
<div class="3">
Div 3 Here
</div>
<div class="4.5">
Div 4.5 here
</div>
<div class="4">
Div 4 Here
</div>
这里是第五组
这里是11区
这里是第三组
这里是4.5区
这里是第四组
和产出:
<div class="frame"></div>
<div class="sorted">
<div class="sub">
Div 11 here
</div>
<div class="3">
Div 3 Here
</div>
<div class="4">
Div 4 Here
</div>
<div class="4.5">
Div 4.5 here
</div>
<div class="5">
Div 5 here
</div>
</div>
这里是11区
这里是第三组
这里是第四组
这里是4.5区
这里是第五组
我希望脚本也能移动所有的孩子(如div、img等),从而将“div 11 here”放在最后。换句话说,.sub
仍然是.5
的孩子
有什么好主意吗=D
请参见此处的小提琴:尝试将选择器更改为:
var sortedDivs = $(".frame > div").toArray().sort(sorter);
它将占用
框架下的所有div
尝试将选择器更改为:
var sortedDivs = $(".frame > div").toArray().sort(sorter);
它将占用
框架下的所有div
尝试将选择器更改为:
var sortedDivs = $(".frame > div").toArray().sort(sorter);
它将占用
框架下的所有div
尝试将选择器更改为:
var sortedDivs = $(".frame > div").toArray().sort(sorter);
它将获取
框架下的所有div
您从.frame
获取的所有div,因此它还包括div和11
。只需找到.frame
var sortedDivs = $(".frame").children().toArray().sort(sorter);
您将从
.frame
获取所有div,因此它还包括div和11
。只需找到.frame
var sortedDivs = $(".frame").children().toArray().sort(sorter);
您将从
.frame
获取所有div,因此它还包括div和11
。只需找到.frame
var sortedDivs = $(".frame").children().toArray().sort(sorter);
您将从
.frame
获取所有div,因此它还包括div和11
。只需找到.frame
var sortedDivs = $(".frame").children().toArray().sort(sorter);
将选择器更改为
var sortedDivs = $(".frame>div").toArray().sort(sorter);
将选择器更改为
var sortedDivs = $(".frame>div").toArray().sort(sorter);
将选择器更改为
var sortedDivs = $(".frame>div").toArray().sort(sorter);
将选择器更改为
var sortedDivs = $(".frame>div").toArray().sort(sorter);