使用jQuery和一些输入创建一个键/对对象
Creating a key/pair object using jQuery and some inputs
我的网站上有一个购物车,我需要让用户随时轻松更改购物车中的商品数量。
以下是我迄今为止拥有的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()
方法中写作只是为了说明目的,以展示我想要实现的目标。
items[productKey] = productQuantity;
在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
您可以将匿名对象添加到items数组中,例如:
items.push({
key: productKey,
quantity: productQuantity
});
然后稍后以items[0].key
或items[0].quantity
的形式访问它们。
您还可以使用JQuery.data方法,这样您也可以消除那些隐藏的方法。
相关文章:
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 对一个对象使用reduce可以返回一个没有't在数组中包含目标字母
- AngularJS&JSON-从Previous&下一个对象
- jQuery$.inArray()总是返回-1和一个对象数组
- javascript处理一个对象数组以获得一个新的对象数组
- javascript函数,它接受两个输入:一个对象和一个键,并返回对象中该键的相应值
- 你能用来自数组的属性名称生成一个对象吗
- 预期响应包含一个对象,但在angular js中得到一个数组错误
- Protractor:element.getText()返回一个对象,而不是String
- 如何使用jQuery添加另一个对象的高度作为边距
- 计算从一个对象到另一个对象的路径并沿其移动
- 如何将一个对象添加到每个对象数组中
- 为了避免创建全局变量,可以将所有变量分配给一个对象吗
- 将javascript对象(属性+值)合并到一个对象中
- 尝试简化检查对象键是否为true并将其推送到另一个对象
- 从 javascript 中的对象方法返回一个对象
- 响应应包含一个对象,但得到的却是GET操作的数组
- js:如何制作一个循环,将20个不同的东西添加到一个对象中
- 用javascript创建另一个对象的实例