首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Jquery对有关ID值的分区按降序排序

使用Jquery对有关ID值的分区按降序排序
EN

Stack Overflow用户
提问于 2015-04-28 14:57:42
回答 3查看 2.1K关注 0票数 0

假设我有一些动态代码返回:

代码语言:javascript
运行
复制
<div id="data-2">data 2</div>
<div id="data-10">data 10</div>
<div id="data-1">data 1</div>

如何使用Jquery按降序对各分部进行排序,以便最终得到以下HTML:

代码语言:javascript
运行
复制
<div id="data-10">data 10</div>
<div id="data-2">data 2</div>
<div id="data-1">data 1</div>

有什么想法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-04-28 15:48:59

这个答案很有帮助:如何在javascript中按id排序div?

代码语言:javascript
运行
复制
<div id="container">
  <div id="data-2">data 2</div>
  <div id="data-10">data 10</div>
  <div id="data-1">data 1</div>
</div>

<script>
var main = document.getElementById( 'container' );

[].map.call( main.children, Object ).sort( function ( a, b ) {
    return +b.id.match( /\d+/ ) - +a.id.match( /\d+/ );
}).forEach( function ( elem ) {
    main.appendChild( elem );
});

</script>

将部门划分为:

代码语言:javascript
运行
复制
<div id="container">
  <div id="data-10">data 10</div>
  <div id="data-2">data 2</div>
  <div id="data-1">data 1</div>
</div>

谢谢大家!!

票数 0
EN

Stack Overflow用户

发布于 2015-04-28 15:00:54

您可以使用:

代码语言:javascript
运行
复制
 $('div').sort(function (a, b) {
   var contentA =parseInt( $(a).attr('id').replace('data-',''));
   var contentB =parseInt( $(b).attr('id').replace('data-',''));
   return (contentA > contentB) ? -1 : (contentA < contentB) ? 1 : 0;
 });
票数 2
EN

Stack Overflow用户

发布于 2015-04-28 15:10:49

这可能对你有帮助!

代码语言:javascript
运行
复制
var resultSort = [];

    $('.data').each(function(index) {
        var getId = $(this)[0].id;
        var splitedId = getId.split('-')[1];
        resultSort.push(splitedId);
        // sort the the array
        var sorted = resultSort.sort(function(x,y){
            return x[0] - y[0];
        });
        var div = '<div id="data-' + sorted[index] +'">data ' + sorted[index] + '</div>';
        $(div).appendTo('#result');
    });

演示:http://jsfiddle.net/60rmg5v1/

更新

代码语言:javascript
运行
复制
var resultSort = [];
$('.data').each(function(index) {
    var getId = $(this)[0].id;
    var splitedId = getId.split('-')[1];
    resultSort.push(splitedId);
    // sort the the array
});
var sorted = resultSort.sort(function(a,b){
        return b - a;
    });

for ( var i = 0; i < sorted.length; i ++ ) {
    var div = '<div id="data-' + sorted[i] +'">data ' + sorted[i] + '</div>';
    $(div).appendTo('#result');
}

演示

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29922783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档