Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.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 排序函数以包含子项_Javascript_Jquery_Html - Fatal编程技术网

Javascript 排序函数以包含子项

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

我目前有一个函数,它可以根据类对div进行数字排序,但是在获取数据时,它不会假设为子类。以下是函数:

$(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);