【发布时间】:2012-03-21 21:35:24
【问题描述】:
我正在尝试构建一个购物车。
有一个非常简单的类可以创建一个 generic.dictionary(of string, generic.dictionary(of string, string) 这包含我的购物车项目。
初始字典的键是商品 ID,因此我可以使用 cartDictionary.ContainsKey(id) 轻松检查商品是否已在购物车中,然后根据需要增加数量或添加新商品。
BUY 按钮触发和 AJAX 化的 web 方法,它返回如下所示的数据:
{
"d": {
"7907": {
"id": "7907",
"qty": "4",
"singlePrice": "1185"
},
"2698": {
"id": "2698",
"qty": "1",
"singlePrice": "1322"
}
}
}
初始项目d 是由AJAX 帖子自动创建的,原因我不明白,但这并不重要,因此在我的AJAX 成功中我的输出是data.d,如下:
success: function (data) {
result = [data.d];
}
现在,我需要能够获取内部数据以将其呈现到购物车中
所以我需要能够按 ID 遍历项目并提取
id
qty
singlePrice
这样我就可以在浏览器中显示它,但我会睁一只眼闭一只眼地尝试解决它。
我尝试在 data.d 周围添加[,比如
var result = [data.d]
并尝试在结果中循环
result = [data.d];
$(result).each(function (i, thing) {
var thisOne = (result[i]);
//alert(thing); //<< returns object object
$(thisOne).each(function (j, val) {
alert(thisOne + " - " + val.id); //<< both thisOne and val.id return object object
});
});
通过警报的返回,我清除了某种 JSON 对象,但我显然搞混了!
我不是程序员,但正在做一个让我慢慢发疯的项目!
【问题讨论】:
-
只是一个快速的建议,调试时使用
console.log( ... )而不是alert。您将获得有关正在发生的事情的更多信息,并且只要单击“确定”,它就不会消失。输出将在您的 DOM 检查器的控制台中(Firefox 中的 Firebug,Chrome/Safari/IE 中的开发人员工具。在任何浏览器中按 F12 以打开其 DOM 检查器。)