显示对象jquery中的数据

Display data from object jquery?

本文关键字:数据 jquery 对象 显示      更新时间:2023-09-26

我有这个

JS

var invoice = 1;
var orders = [
    [{
        "invoice": "1",
        "article": "Coca Cola",
        "qty": "5",
        "active": "Yes"
    }, {
        "invoice": "1",
        "article": "Fanta",
        "qty": "10",
        "active": "Yes"
    }, {
        "invoice": "1",
        "article": "Sprite",
        "qty": "40",
        "active": "Yes"
    },{
        "invoice": "1",
        "article": "Coca Cola",
        "qty": "40",
        "active": "Yes"
    }],
    [{
        "invoice": "2",
        "article": "Coca Cola",
        "qty": "55",
        "active": "Yes"
    }, {
        "invoice": "2",
        "article": "Fanta",
        "qty": "10",
        "active": "Yes"
    }]
];
var msg = "<div id=results>" + results + "</div>";

html中的最终结果是这样的,比如说对于发票1,计算所有具有相同内容的文章命名其所有数量,并显示该商品名称和数量的总额。以下是html需要如何显示?

<div id="results">
<div class="each">
<input value="Coca Cola"><input value="45">
</div>
<div class="each">
<input value="Fanta"><input value="10">
</div>
<div class="each">
<input value="Sprite"><input value="40">
</div>

在可口可乐上,我必须显示数量的计数值?我已经成为一名工作小提琴手,但正如你们所看到的,我一开始就停滞不前。

以下是的一种方法

function getInvoice(numb) {
    return $('<section />', {
        'class' : 'results'
    }).append(
        $.map(orders, function(arr) {
            var o = {};
            $.each(arr, function(_, obj) {
                if (obj.invoice == numb)
                    o[obj.article] = (o[obj.article] || 0) + (+obj.qty);
            });
            return $.map(o, function(qty, article) {
                return $('<div />', {
                    'class' : 'each'
                }).append(
                    $('<input />', {value : article}),
                    $('<input />', {value : qty})
                ).get(0);
            });
        })
    );
}

FIDDLE