2014-11-21 19 views
1

爲什麼我不能使用java腳本方法Sort()從jquery api創建的Array對象$ .makeArray() For Eg: 我的DOM有這些元素

<ul id="languages"> 
<li>First</li> 
<li>Second</li> 
<li>Third</li> 
<li>Fourth</li> 
</ul> 

我試着對它們進行排序和追加。

var elems = document.getElementsByTagName("li"); var arr = $.makeArray(elems); arr.sort(); $(arr).appendTo("#languages");

回答

0

這應該是解決你的問題 - 希望這有助於

var elems = document.getElementsByTagName("li"); 
var arr = $.makeArray(elems); 
arr.sort(function(a, b){ 
    return a.innerHTML > b.innerHTML; 
}); 
$(arr).appendTo("#languages") 
0

你需要有一個自定義排序方法基於內容的元素進行排序

//You can use .get() to get an array of elements from a jQuery object 
 
var arr = $("li").get(); 
 
arr.sort(function(o1, o2) { 
 
    return $(o1).text().localeCompare($(o2).text()) 
 
}); 
 
$(arr).appendTo("#languages");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<ul id="languages"> 
 
    <li>First</li> 
 
    <li>Second</li> 
 
    <li>Third</li> 
 
    <li>Fourth</li> 
 
</ul>

0

你必須使用toArray()轉換纏jQuery對象dom objects ..

var elems = document.getElementsByTagName("li"); 
var sorted = $(elems).toArray().sort(); 
相關問題