需要在 jQuery 中从 AJAX 将所有 JSON 推送到一个数组中
Posted
技术标签:
【中文标题】需要在 jQuery 中从 AJAX 将所有 JSON 推送到一个数组中【英文标题】:Need to push all JSON into an array from AJAX, in jQuery 【发布时间】:2013-06-17 23:32:13 【问题描述】:代码如下:
var newFeeds = []; // ** GLOBAL **
$(document.body).click(function()
$.ajax(
type: "POST",
url: "http://mysite.com/feed.php",
success: function (data)
$(newFeeds).push(data);
alert(newFeeds.length);
,
error: function(error)
alert('Error: ' + error);
,
dataType: "json"
);
);
我可以从服务器获取数据。一切正常,但数组永远不会填满。
但奇怪的是newFeeds.length
返回 0!为什么?
我需要将到达的数据推送到一个数组中以备后用。
【问题讨论】:
当然不要忘记newFeeds
直到 异步调用完成后才会被填充
所以你们是要帮他,还是把啤酒和一袋薯条递过去?
【参考方案1】:
$(newFeeds).push(data)
应该是
newFeeds.push(data)
newFeeds 是您已声明的数组。
var newFeeds = [];
但在回调中,您将其包装为 jQuery Object
$(newFeeds)
【讨论】:
好的,在更正之后(我的错,忘记撤消我的所有尝试)它仍然无法总结。我在 json 中得到 3 个结果。我希望在第二次点击时获得 6,但由于某种原因它仍然是 3(?) @Ted 你确定你在检查数组长度之前给回调一个完成的机会(根据上面关于问题的评论)?data
长什么样子?
@Alnitak.. 我认为他正在检查回调中的数组长度
@Ted。很高兴有帮助:)以上是关于需要在 jQuery 中从 AJAX 将所有 JSON 推送到一个数组中的主要内容,如果未能解决你的问题,请参考以下文章
在 jQuery AJAX Success 中从 MySql 获取特定响应