jQuery如何对div进行排序

<div class='container'>
<div id='1'>
    <div class='name'>bbbb</div>
    <div class='number'><input type='text' value='110'></div>
</div>
<div id='2'>
    <div class='name'>cccc</div>
    <div class='number'><input type='text' value='120'></div>
</div>
<div id='3'>
    <div class='name'>dddd</div>
    <div class='number'><input type='text' value='140'></div>
</div>
</div>

根据input里面的value值对div进行排序,最好是jquery实现。

阅读 22.2k
2 个回答

jQuery中有sort()方法可用,和Array.sort()方法一样。

//递增
 var asc = function(a, b) {
        return $(a).find('input').val() > $(b).find('input').val() ? 1 : -1;
    }
//递减
 var desc = function(a, b) {
        return $(a).find('input').val() > $(b).find('input').val() ? -1 : 1;
    }

 var sortByInput = function(sortBy) {
        var sortEle = $('.container>div').sort(sortBy);
        $('.container').empty().append(sortEle);
    }

http://jsfiddle.net/zfcnM/

用$.each(),简单的写一下:

function changeOrder(order) { //参数order为获取排序顺序例如:['1','2','3']
 	if (typeof(order) == 'string') {
 		order = eval(order);
 	} 			
 	$.each(order, function(i){
 		$('.container').append(jQuery('#'+order[i]));
 	});
 }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏