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实现。

阅读 18k
评论
    2 个回答
    airyland
    • 5.6k

    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/

    评论 赞赏
      浮華一玍_DL
      • 1
      • 新人请关照

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

      function changeOrder(order) { //参数order为获取排序顺序例如:['1','2','3']
       	if (typeof(order) == 'string') {
       		order = eval(order);
       	} 			
       	$.each(order, function(i){
       		$('.container').append(jQuery('#'+order[i]));
       	});
       }
      评论 赞赏
        撰写回答

        登录后参与交流、获取后续更新提醒