【问题标题】:Getting undefined when accessing json's value in $.each访问 $.each 中的 json 值时未定义
【发布时间】: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 - 是的,刚刚得到了东西。好吧,任何人都可以发布答案,以便我可以将其标记为已回答。

标签: jquery ajax json


【解决方案1】:

您也可以删除所有这些并在开头打勾...例如。

if(!response[i].pin) return false; 

干杯:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-08
    • 2022-07-20
    相关资源
    最近更新 更多