2010-08-27 72 views
1

是否可以使用數據函數對div進行排序?Jquery - 按類使用數據排序div()

HTML

<div id="gp_21" class="line">one</div> 
<div id="gp_35" class="line">two</div> 
<div id="gp_11" class="line">three</div> 
<div id="gp_29" class="line">four</div> 

<hr /> 

<div id="check"></div> 

JS

$(document).ready(function rt() { 

    $('#gp_21').data("rtt", { age: '251351' }); 
    $('#gp_35').data("rtt", { age: '25131151' }); 
    $('#gp_11').data("rtt", { age: '251' }); 
    $('#gp_29').data("rtt", { age: '25131148' }); 

check(); 

}); 


function check() 
{ 

    $('.line').each(function() { 

    age = $('#'+this.id+'').data("rtt").age; 

    $('#check').append('-> '+age+' - '+this.id+'<br />'); 


    }); 

} 

工作示例 - >http://www.jsfiddle.net/V9Euk/265/

提前感謝! 彼得

+1

你不需要'$(「#」+ this.id)'use可以簡單地使用'$(this)'而不是 – BrunoLM 2010-08-27 10:42:33

+0

你見過Quicksand插件嗎? http://www.razorjack.net/quicksand/ – 2010-08-27 10:44:04

+0

@易江...漂亮的插件!謝謝! – Peter 2010-08-27 10:51:34

回答

0

喜見追加排序的div這個http://www.jsfiddle.net/V9Euk/268/

function check() 
{ 
    var ages= []; 
    var ids = [] 
    $('.line').each(function() { 

     ages[ages.length] = $('#'+this.id+'').data("rtt").age;   
     ids[ids.length] = this.id; 
    });  
    ages.sort(sortByAge); 
    $(ages).each(function(i, v) {    
     for(key in ids) 
     { 
      if($("#"+ids[key]).data("rtt").age == v) 
      { 
       $('#check').append('-> '+v+' - '+ids[key]+'<br />'); 
      } 
     } 

    }); 

} 
function sortByAge(a, b) 
{ 
     return a-b; 
} 

您好我更新了我的答案。