2014-10-15 4 views
0

저는 localstorage 데이터의 출력을 정렬하는 방법에 오랜 시간 애써 왔습니다. 제품의 저장된 ID에 대한 출력 (오름차순)을 정렬하려고합니다. 누구든지 해결 방법을 찾았습니까?jquery localstorage 정렬 출력

Thx!

function showCheckout() { 
Cart  = JSON.parse(localStorage.getItem('cartStorage')); 
cartTbody = ''; 

if (Cart) { 
    $.each(Cart, function(index, value) { 
     if (value !== null) {  
       cartTbody += '<tr id="row' + value['id'] + '">' + 
       '<td> + value['product_name'] + '</td>' + 
      '</tr>'; 
     } 
    }); 
} 
$("#cartContainer tbody").html(cartTbody); 
} 
+0

정기적 인 정렬을 시도 했습니까? https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort –

답변

0

좋아, 그럼 각 요소의 정보를 테이블의 행에 추가하기 전에 장바구니를 정렬하려고합니다.

내가 거라고이가는대로 따라서, 당신의 용기에 행을 삽입 올바른 인덱스에 배치 있습니다 sugest

var $container = $("#cartContainer tbody"); 
$container.empty(); 
Cart = JSON.parse(localStorage.getItem('cartStorage')); 
$.each(Cart, function(index, value) { 
    var $row = $("<row/>").attr("id",row + value['id']) 
    $("<td/>").text(value['product_name']).appendTo($row); 
    //Here you determine where row should be inserted. 
    var inserted = false; 
    $container.find("row").each(function(){ 
     if(!inserted && $(this).attr("id").localeCompare(value['id'])>0){ 
      $(this).before($row); 
      inserted = true; 
     } 
    }); 
    if(!inserted){ 
     $container.append($row); 
    } 
} 

이 방법에서 JQuery와 통화 꽤 많이있다 그래서 당신의 배열이 큰 경우, 당신을 성능 향상을 위해 순차적으로 삽입하면됩니다.