假设我有一些动态代码返回:
<div id="data-2">data 2</div>
<div id="data-10">data 10</div>
<div id="data-1">data 1</div>
如何使用Jquery按降序对各分部进行排序,以便最终得到以下HTML:
<div id="data-10">data 10</div>
<div id="data-2">data 2</div>
<div id="data-1">data 1</div>
有什么想法吗?
发布于 2015-04-28 15:48:59
这个答案很有帮助:如何在javascript中按id排序div?
<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>
将部门划分为:
<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>
谢谢大家!!
发布于 2015-04-28 15:00:54
您可以使用:
$('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;
});
发布于 2015-04-28 15:10:49
这可能对你有帮助!
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/
更新
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');
}
演示
https://stackoverflow.com/questions/29922783
复制相似问题