jquery localstorage排序输出



我一直在为如何对本地存储数据的输出进行排序而苦苦挣扎。我想根据存储的产品id对输出(asc)进行排序。有人知道如何解决这个问题吗?

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);
}

好的,所以您想在将Cart的每个元素的信息附加到表的行之前对其进行排序。

我建议您边走边在容器中插入行,从而将它们放置到正确的索引中

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调用,所以如果你的数组很大,为了性能起见,最好先对它进行排序,然后按顺序插入。

最新更新