2013-03-09 55 views
1

我想用項目對列表排序。排序應基於每個項目的數據元素。JS:基於數據元素的排序列表項目

奇怪的是,它的作品,如果你在本地嘗試在你的電腦(下載我sortingtest.html),但它不能在網上jfiddle工作,既沒有更重要的是在手機上!

你知道我的代碼有什麼問題嗎?或者我可以做得更好,這樣它在手機上也能工作嗎?

驗證碼:

<html> 
<head> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
    <script> 
    function sortEntries() {  
     var elems = $('#mylist').children('li').remove(); 
     elems.sort(function(a,b){ 
      return parseInt($(b).data('vote')) > parseInt($(a).data('vote')); 
     }); 
     $('#mylist').append(elems); 
    } 
    </script> 
</head> 

<body> 

    <ul id="mylist"> 
     <li data-vote="2">Vote: 2</li> 
     <li data-vote="4">Vote: 4</li> 
     <li data-vote="1">Vote: 1</li> 
     <li data-vote="5">Vote: 5</li> 
     <li data-vote="3">Vote: 3</li> 
    </ul> 

    <a href="#" onClick="sortEntries();">Sort me!</a> 

</body> 
</html> 

JFiddle: http://jsfiddle.net/Q82Qu/

HTML文件下載:(文件另存爲) https://copy.com/c0Ogb8wLtRrg

非常感謝提前, 扁鋼

回答

1

我已經整理出來我自己:

的關鍵是使用此分類代碼:

elems.sort(function(a,b){ 
    return $(b).attr('data-vote') - $(a).attr('data-vote'); 
}); 
1
var elems = $('#mylist').children('li').remove(); 

上面的代碼是什麼做的是從文件中刪除DOM,所以你不能把它作爲elems.sort(

<html> 
<head> 
    <script src="js/jquery.js"></script> 
    <script> 
    function sortEntries() 
    { 
     var elems = $('#mylist').children('li'); 
     elems.sort(function(a,b){ 
      return parseInt($(b).data('vote')) > parseInt($(a).data('vote')); 
     }); 
     $('#mylist').append(elems); 
    } 
    </script> 
</head> 

<body> 

    <ul id="mylist"> 
     <li data-vote="2">Vote: 2</li> 
     <li data-vote="4">Vote: 4</li> 
     <li data-vote="1">Vote: 1</li> 
     <li data-vote="5">Vote: 5</li> 
     <li data-vote="3">Vote: 3</li> 
    </ul> 

    <a href="#" onClick="sortEntries();">Sort me!</a> 

</body> 
</html> 
+0

不幸的是,這也不起作用。我測試過了。 – Stee 2013-03-09 13:04:36

相關問題