[jQuery] 조건에 맞게 엘리먼트 정렬하기 on redgoose note

[jQuery] 조건에 맞게 엘리먼트 정렬하기

Nest: Development Category: Javascript 2013-03-16

  • 엘리먼트를 글자 순서대로나 속성순서대로 정렬할 수 있다.
  • 엘리먼트를 get()를 이용해 배열로 담아서 정렬하고 반복문으로 다시 뿌려주는 방식이라서 양이 많거나 자바스크립트 처리엔진이 느린 브라우저라면 약간 느린 경향이 있다.

html

<ul class="alphaList">
  <li>apple</li>
  <li>cat</li>
  <li>beers</li>
</ul>

javascript

var items = $('.alphaList li').get();
items.sort(function(a,b){ 
  var keyA = $(a).text();
  var keyB = $(b).text();
  if (keyB > keyA) return -1;
  if (keyA > keyB) return 1;
  return 0;
});
var ul = $('.alphaList');
$.each(items, function(i, li){
  ul.append(li);
});