【发布时间】:2013-12-30 23:19:40
【问题描述】:
这是遍历我通过 ajax 调用接收的响应 json 对象的 each。
$.each(response, function(i, item) {
alert(item.pin + item.place);
selected = response[i].pin.substr(0, zip.length);
remain = response[i].pin.substr(zip.length);
$(".zip-drop").append("<p class='zip-suggest'><span class='suggest-pin'><b>"+selected+"</b>"+remain+"</span><span class='suggest-place'>"+item.place+"</span></p>");
return i < Object.keys(response).length - 1;
});
一切正常,但在控制台中我得到undefined item.pin 尽管警报正在产生预期的结果。这个undefined 问题使得ajax 调用停留了很长时间。我正在使用加载器图像,一旦进行 ajax 调用,它就会永远存在。
消除undefined 错误的任何解决方案。我不明白为什么?
【问题讨论】:
-
我不确定您要在这里做什么,但是您需要所有这些全局变量吗?我愿意打赌这至少是问题的一部分。
-
你得到了多少参考错误?您的收藏中的每件物品都有一个?我的猜测是,并非每个项目都有 .pin 属性。
-
但是你并没有限制你的循环。如果您想限制它,请在开始使用 .each 正文中的 i 的下一次迭代引用事物之前进行检查。
-
你也可以删除所有这些并在开头打勾...例如
if(!response[i].pin) return false;欢呼:) -
@Shaanimal 谢谢老兄! kinakuta - 是的,刚刚得到了东西。好吧,任何人都可以发布答案,以便我可以将其标记为已回答。