2

我的网站上有一个购物车,我需要让用户随时轻松更改他们购物车中的商品数量。

这是我到目前为止的javascript代码:

<script type="text/javascript" language="javascript">
    $(document).ready(function () {

        var items = [];

        $(".item").each(function () {
            var productKey = $(this).find("input[type='hidden']").val();
            var productQuantity = $(this).find("input[type='text']").val();
            items.addKey(productKey, productQuantity); ?
        });

        // 1. Grab the values of each ammount input and it's productId.

        // 2. Send this dictionary of key pairs to a JSON action method.

        // 3. If results are OK, reload this page.
    });
</script>

我写的评论只是对我如何进行的指导。

有没有办法将键/对元素添加到排序数组?我只需要它有一个键和值。没有什么花哨。

我写了一个addKey()方法只是为了说明目的来展示我想要完成的事情。

4

4 回答 4

4
items[productKey] = productQuantity;
于 2012-04-06T16:12:50.270 回答
1

在 JavaScript 中,数组是对象 ( typeof(new Array)==='object'),并且对象可以具有可以使用点或括号语法获取/设置的属性:

var a = [1,2,3];
JSON.stringify(a); // => "[1,2,3]"
a.foo = 'Foo';
a.foo; // => 'Foo'
a['foo']; // => 'Foo'
JSON.stringify(a); // => "[1,2,3]"

因此,在您的情况下,您可以简单地将 productQuantity 值添加到item数组的 productKey 属性中,如下所示:

items[productKey] = productQuantity;
items[productKey]; // => productQuantity
于 2012-04-06T16:25:58.497 回答
0

您可以将匿名对象添加到 items 数组,例如:

items.push({
    key: productKey,
    quantity: productQuantity
});

然后稍后以items[0].key或访问它们items[0].quantity

于 2012-04-06T16:17:47.607 回答
0

你也可以使用 JQuery.data 方法,这样你也可以摆脱那些隐藏的。

于 2012-04-06T16:22:23.170 回答