Javascript 按子div的ID排序div

Javascript 按子div的ID排序div,javascript,jquery,Javascript,Jquery,我有一个文件递归地回显以下HTML多次(例如3次) … 2042 … 我想根据.viewers标记的id来订购这些main.container div(正如您所看到的,它被设置为复制实际的查看器计数) 有人能帮我吗?如果所有这些元素都在一个容器元素下,那么 var els = $('#myct > .container').get(); els.sort(function (o1, o2) { return $.trim($(o1).find('.viewers').tex

我有一个文件递归地回显以下HTML多次(例如3次)


2042

我想根据.viewers标记的id来订购这些main.container div(正如您所看到的,它被设置为复制实际的查看器计数)


有人能帮我吗?

如果所有这些元素都在一个容器元素下,那么

var els = $('#myct > .container').get();

els.sort(function (o1, o2) {
    return $.trim($(o1).find('.viewers').text()).localeCompare($.trim($(o2).find('.viewers').text()))
});

$('#myct').append(els)

演示:

这似乎工作正常:

var $divs = $(".container");

[].sort.call($divs, function(a, b) {
    return $(a).find(".viewers").attr("id") -
           $(b).find(".viewers").attr("id");
});

$divs.parent().append($divs);
演示:


也就是说,选择所有的
容器
元素,使用将它们按照它们自己的
查看器
元素的id属性的顺序排列(这里我假设只有数字id-对于字母排序,显然不能只减去id),然后使用在它们的父元素中移动它们。当然,我假设它们有一个共同的父元素。

是否所有这些元素都在容器元素中?
var $divs = $(".container");

[].sort.call($divs, function(a, b) {
    return $(a).find(".viewers").attr("id") -
           $(b).find(".viewers").attr("id");
});

$divs.parent().append($divs);