[JQUERY] 어떻게 jQuery를 사용하여 알파벳 순으로 목록을 정렬 할 수 있습니다?
JQUERY어떻게 jQuery를 사용하여 알파벳 순으로 목록을 정렬 할 수 있습니다?
해결법
-
1.이 작업을 수행하기 위해 jQuery를 필요가 없습니다 ...
이 작업을 수행하기 위해 jQuery를 필요가 없습니다 ...
function sortUnorderedList(ul, sortDescending) { if(typeof ul == "string") ul = document.getElementById(ul); // Idiot-proof, remove if you want if(!ul) { alert("The UL object is null!"); return; } // Get the list items and setup an array for sorting var lis = ul.getElementsByTagName("LI"); var vals = []; // Populate the array for(var i = 0, l = lis.length; i < l; i++) vals.push(lis[i].innerHTML); // Sort it vals.sort(); // Sometimes you gotta DESC if(sortDescending) vals.reverse(); // Change the list on the page for(var i = 0, l = lis.length; i < l; i++) lis[i].innerHTML = vals[i]; }
사용하기 쉬운...
sortUnorderedList("ID_OF_LIST");
라이브 데모 →
-
2.이 같은:
이 같은:
var mylist = $('#myUL'); var listitems = mylist.children('li').get(); listitems.sort(function(a, b) { return $(a).text().toUpperCase().localeCompare($(b).text().toUpperCase()); }) $.each(listitems, function(idx, itm) { mylist.append(itm); });
이 페이지에서 : http://www.onemoretake.com/2009/02/25/sorting-elements-with-jquery/
위의 코드는 ID 'myUL'와 정렬되지 않은 목록을 정렬합니다.
또는 당신은 TinySort 같은 플러그인을 사용할 수 있습니다. https://github.com/Sjeiti/TinySort
-
3.
$(".list li").sort(asc_sort).appendTo('.list'); //$("#debug").text("Output:"); // accending sort function asc_sort(a, b){ return ($(b).text()) < ($(a).text()) ? 1 : -1; } // decending sort function dec_sort(a, b){ return ($(b).text()) > ($(a).text()) ? 1 : -1; }
라이브 데모 : http://jsbin.com/eculis/876/edit
-
4.크롬을 포함한 모든 브라우저와이 작품의 작업을 당신은 종류의 () 반환 -1,0 또는 1의 콜백 기능을해야합니다.
크롬을 포함한 모든 브라우저와이 작품의 작업을 당신은 종류의 () 반환 -1,0 또는 1의 콜백 기능을해야합니다.
http://inderpreetsingh.com/2010/12/01/chromes-javascript-sort-array-function-is-different-yet-proper/ 참조
function sortUL(selector) { $(selector).children("li").sort(function(a, b) { var upA = $(a).text().toUpperCase(); var upB = $(b).text().toUpperCase(); return (upA < upB) ? -1 : (upA > upB) ? 1 : 0; }).appendTo(selector); } sortUL("ul.mylist");
-
5.당신이 jQuery를 사용하는 경우이 작업을 수행 할 수 있습니다 :
당신이 jQuery를 사용하는 경우이 작업을 수행 할 수 있습니다 :
() {(기능 $ var에 $ 목록 = $ ( "# 목록"); $ list.children (). 분리 (). 정렬 방법 (함수 (a, b) { 반환 $ (a)는 .text () localeCompare ($ (b)는 .text ()).; }) appendTo ($ 목록).; }); <스크립트 SRC = "https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"> script>
- 델타 리>
- 고양이 리>
- 알파 리>
- 고양이 리>
- 베타 리>
- 감마 리>
- 감마 리>
- 알파 리>
- 고양이 리>
- 델타 리>
- 박쥐 리>
- 고양이 리>
UL>
비교 기능에서 1을 반환과 1 (0 및 1하여) 절대적으로 잘못되어 있습니다.
-
6.SolutionYogi의 대답은 마법처럼 작동하지만 $를 사용하여 직접 추가하는 많은 ListItems보다 간단하고 효율적 .each 것으로 보인다 @ :
SolutionYogi의 대답은 마법처럼 작동하지만 $를 사용하여 직접 추가하는 많은 ListItems보다 간단하고 효율적 .each 것으로 보인다 @ :
var mylist = $('#list'); var listitems = mylist.children('li').get(); listitems.sort(function(a, b) { return $(a).text().toUpperCase().localeCompare($(b).text().toUpperCase()); }) mylist.empty().append(listitems);
깡깡이
-
7.지트 앤드 라 차우의 답변에 따라 개선
지트 앤드 라 차우의 답변에 따라 개선
$('ul.menu').each(function(){ $(this).children('li').sort((a,b)=>a.innerText.localeCompare(b.innerText)).appendTo(this); });
왜 내가 그것을 개선 고려 :
-
8.나는이 나 자신을 찾고 있었다, 나는 단지 내가 생각하기 때문에 제공하는 답변의 만족 않네, 그들은 차 시간이고, 나는 긴 항목의 목록 수백에서이 작업을 수행해야합니다.
나는이 나 자신을 찾고 있었다, 나는 단지 내가 생각하기 때문에 제공하는 답변의 만족 않네, 그들은 차 시간이고, 나는 긴 항목의 목록 수백에서이 작업을 수행해야합니다.
내가 jQuery를 확장 결국, 내 솔루션 jQuery를 사용하지만, 쉽게 바로 자바 스크립트를 사용하도록 수정 될 수 있습니다.
나는 자유롭게 내가 잘못 될 수 고백하지만 난 단지, 훨씬 빨리 대규모 데이터 세트에로, 내 생각, 작업을 두 번 각 항목을 액세스하고이해야하므로, 하나 개의 linearithmic 정렬을 수행있다 :
sortList: function() { if (!this.is("ul") || !this.length) return else { var getData = function(ul) { var lis = ul.find('li'), liData = { liTexts : [] }; for(var i = 0; i<lis.length; i++){ var key = $(lis[i]).text().trim().toLowerCase().replace(/\s/g, ""), attrs = lis[i].attributes; liData[key] = {}, liData[key]['attrs'] = {}, liData[key]['html'] = $(lis[i]).html(); liData.liTexts.push(key); for (var j = 0; j < attrs.length; j++) { liData[key]['attrs'][attrs[j].nodeName] = attrs[j].nodeValue; } } return liData; }, processData = function (obj){ var sortedTexts = obj.liTexts.sort(), htmlStr = ''; for(var i = 0; i < sortedTexts.length; i++){ var attrsStr = '', attributes = obj[sortedTexts[i]].attrs; for(attr in attributes){ var str = attr + "=\'" + attributes[attr] + "\' "; attrsStr += str; } htmlStr += "<li "+ attrsStr + ">" + obj[sortedTexts[i]].html+"</li>"; } return htmlStr; }; this.html(processData(getData(this))); } }
-
9.다음 목록에 배열 다시 변환, 사용, 배열 순으로 디폴트로 자바 스크립트 .sort을 (), 목록을 넣습니다.
다음 목록에 배열 다시 변환, 사용, 배열 순으로 디폴트로 자바 스크립트 .sort을 (), 목록을 넣습니다.
http://www.w3schools.com/jsref/jsref_sort.asp
-
10.HTML
HTML
<ul id="list"> <li>alpha</li> <li>gamma</li> <li>beta</li> </ul>
자바 스크립트
function sort(ul) { var ul = document.getElementById(ul) var liArr = ul.children var arr = new Array() for (var i = 0; i < liArr.length; i++) { arr.push(liArr[i].textContent) } arr.sort() arr.forEach(function(content, index) { liArr[index].textContent = content }) } sort("list")
JS 휘티 d 혀라도 h っ tps : // js 휘티 d 차다. 군요 t / 97 오 61 응 w /
여기에서는 어레이 도착 특정 ID가 UL 내부 리 모든 요소 값 (우리는 함수의 인수로서 제공되는) 푸시하고 정렬는 정렬 () 기본적으로 분류 알파벳 인 방법을 사용. 어레이 도착) 우리를 foreach는 (사용이 배열되어 루프 정렬 방법 및 정렬 막 콘텐츠 모든 리튬 원소의 텍스트 콘텐츠를 교체 한 후
from https://stackoverflow.com/questions/1134976/how-may-i-sort-a-list-alphabetically-using-jquery by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] jQuery를 사용하여 클립 보드에 버튼 복사를 클릭합니다 (0) | 2020.09.25 |
---|---|
[JQUERY] 왜 나는 옵션을 GET 요청 대신 요구는 무엇입니까? (0) | 2020.09.25 |
[JQUERY] 체크 박스가 jQuery를 함께 선택되어 있는지 확인 (0) | 2020.09.24 |
[JQUERY] 어떻게 데이터 id 속성을 얻으려면? (0) | 2020.09.24 |
[JQUERY] 어떻게 16 진수 색상 값이 아닌 RGB 값을 얻을 수 있습니까? (0) | 2020.09.24 |