使用jQuery和一些输入创建一个键/对对象

时间:2012-04-06 16:10:30

标签: javascript jquery

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

这是我到目前为止的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 个答案:

答案 0 :(得分:4)

items[productKey] = productQuantity;

答案 1 :(得分: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

答案 2 :(得分:0)

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

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

然后以items[0].keyitems[0].quantity

访问它们

答案 3 :(得分:0)

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