복붙노트

[JQUERY] 데이터 속성 값을 기준으로 JQuery와 정렬 목록

JQUERY

데이터 속성 값을 기준으로 JQuery와 정렬 목록

해결법


  1. 1.() appendTo ()로 분류 사용해보십시오

    () appendTo ()로 분류 사용해보십시오

    $(".listitems li").sort(sort_li) // sort elements
                      .appendTo('.listitems'); // append again to the list
    // sort function callback
    function sort_li(a, b){
        return ($(b).data('position')) < ($(a).data('position')) ? 1 : -1;    
    }
    

    단편,

    () {(기능 $ $ ( "많은 ListItems 리.") 종류 (sort_li) .appendTo ( '많은 ListItems..'); 함수 sort_li (a, b) { 창 ($ (b) .DATA ( '위치')) <($ (a) .DATA ( '위치'))? 1 : 27; } }); <스크립트 SRC = "https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">

      <리 데이터 위치 = "3"> 항목 3 <리 데이터 위치 = "2"> 항목 2 <리 데이터 위치 = "1"> 항목 1 <리 데이터 위치 = "4"> 항목 4


    • 2.여러 목록보다는 하나 작업이 원하는 경우, 당신은 다음을 사용할 수 로한의 대답에 확장 :

      여러 목록보다는 하나 작업이 원하는 경우, 당신은 다음을 사용할 수 로한의 대답에 확장 :

      HTML :

      <ul class="listitems autosort">
          <li data-position="3">Item 3</li>
          <li data-position="2">Item 2</li>
          <li data-position="1">Item 1</li>
          <li data-position="4">Item 4</li>
      </ul>
      
      <ul class="listitems autosort">
          <li data-position="5">Item 5</li>
          <li data-position="6">Item 6</li>
          <li data-position="3">Item 3</li>
          <li data-position="4">Item 4</li>
      </ul>
      

      자바 스크립트 :

      $(".listitems.autosort").each(function(){
          $(this).html($(this).children('li').sort(function(a, b){
              return ($(b).data('position')) < ($(a).data('position')) ? 1 : -1;
          }));
      });
      

      그것은 당신이 원하는대로 당신이 많은 목록으로 추가 할 수 있도록 할 것이다 종류 모두 단지 클래스 자동 정렬을 설정하여.

      라이브 예


    • 3.내 제안은 전체 자바 스크립트입니다 :

      내 제안은 전체 자바 스크립트입니다 :

      document.addEventListener ( "DOMContentLoaded"함수 (E) { (document.querySelectorAll ( '. 많은 ListItems 리를')) Array.prototype.slice.call. 정렬 (기능 (A, B)을 { 창 a.getAttribute ( "데이터 위치") localeCompare (b.getAttribute ( "데이터 위치 ')).; }). 대해 forEach (함수 (currValue) { currValue.parentNode.appendChild (currValue); }); });

        <리 데이터 위치 = "3"> 항목 3 <리 데이터 위치 = "2"> 항목 2 <리 데이터 위치 = "1"> 항목 1 <리 데이터 위치 = "4"> 항목 4


      • 4.어떤 종류의 사용 및 DOM 내부 교체에 대한 함수 sortLiElements (a, b) { 창으로 parseInt ($ (a) .DATA ( '위치')) -으로 parseInt ($ (b) .DATA ( '위치')); } $ ( '많은 ListItems.') HTML ($ ( '많은 ListItems 리.') 종류 (sortLiElements).).; <스크립트 SRC = "https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.2/jquery.min.js">
          <리 데이터 위치 = "3"> 항목 3 <리 데이터 위치 = "2"> 항목 2 <리 데이터 위치 = "1"> 항목 1 <리 데이터 위치 = "4"> 항목 4

        어떤 종류의 사용 및 DOM 내부 교체에 대한 함수 sortLiElements (a, b) { 창으로 parseInt ($ (a) .DATA ( '위치')) -으로 parseInt ($ (b) .DATA ( '위치')); } $ ( '많은 ListItems.') HTML ($ ( '많은 ListItems 리.') 종류 (sortLiElements).).; <스크립트 SRC = "https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.2/jquery.min.js">

          <리 데이터 위치 = "3"> 항목 3 <리 데이터 위치 = "2"> 항목 2 <리 데이터 위치 = "1"> 항목 1 <리 데이터 위치 = "4"> 항목 4


        • 5.이 시도

          이 시도

          함수있는 sortList () { VAR 목록, I, 스위칭, B shouldSwitch; 목록 document.getElementById를 ( "id01을") =; 스위칭 = 참; / * 때까지 계속 루프를 확인 더 전환이 완료되지 않은 * / 반면 {(전환) 더 스위칭이 수행되지 않습니다 : // 말로 시작 : 스위칭 = FALSE; B = list.getElementsByTagName ( "LI"); 모든리스트 항목을 통해 // 루프 : 대 (I = 0; I <(b.length를 - 1); I ++) { // 어떤 전환이 없어야합니다 말해서 시작 : shouldSwitch = 거짓; / * 체크하면 다음 항목이해야 현재 항목과 장소를 전환 : * / //alert(b[i].getAttribute("order ")); 경우 (b [I] .getAttribute ( "순서").와 toLowerCase ()> B [I + 1] .getAttribute ( "순서").와 toLowerCase ()) { / * 다음 항목이 알파벳 인 경우 스위치로 표시, 현재 항목보다 낮은 루프 휴식 : * / shouldSwitch 사실 =; 단절; } } 경우 (shouldSwitch) { 스위치가 표시되어있는 경우 / * 전환 할 및 완료로 스위치를 표시 : * / B [i]를 .parentNode.insertBefore (b [I + 1], B [I]); 스위칭 = 참; } } } <버튼의 onclick = "있는 sortList ()"> 정렬 목록

            <리 오더 = "A"급 = "disname disheader"> 보류
          • (302-1) 에너지 소비
          • 302-3 에너지 강도
          • EN-31 환경 비용 / 투자
          • 103-2 환경 불만 <리 오더 = "D"클래스 = "disname disheader"> 비활성화 <리 오더 = "BB"등급 = "disname"> 305-4 발광 강도
          • 306-2 총 폐기물 <리 오더 = "BB"등급 = "disname"> 307-1 컴플라이언스
          • 302-4 에너지 / 전기 절감 이니셔티브 <리 오더 = "AA"등급 = "disname"> 303-1 추이 물 출금 <리 오더 = "AA"등급 = "disname"> 303-3 재활용 수 <리 오더 = "C"클래스 = "disname disheader"> 자동 생성
          • 305-1 온실 가스 배출
          • (305-2) 온실 가스 배출량
          • (305-3) 온실 가스 배출량 <리 오더 = "BB"등급 = "disname"> 온실 가스 방출의 감소 05-5 <리 오더 = "BB"등급 = "disname"> 306-1 배수 <리 오더 = "B"클래스 = "disname disheader"> 연체

            Codepen 예

          from https://stackoverflow.com/questions/21600802/jquery-sort-list-based-on-data-attribute-value by cc-by-sa and MIT license