gpt4 book ai didi

javascript - 使用 jQuery each() 函数返回一个值

转载 作者:数据小太阳 更新时间:2023-10-29 05:16:47 25 4
gpt4 key购买 nike

我是 javascript 的新手,我想从 JSON 中检索值并将其推送到数组中,以便我可以在另一个函数中再次解析该数组,但我不知道推送后如何返回数组里面的元素。

在下面的脚本中我无法显示项目中的值

function gC(b,c,p) {

$.getJSON('getmonths', 'b='+b+'&c='+c+'&p='+p, processJSON);
}

function processJSON(data) {
var retval = [];
$.each(data, function(key, val) {

retval.push(val);
//alert(retval.pop());
});
return retval;
}

$(document).ready(function(){
var b = $("#b").val();
var c = $("#c").val();
var p = $("#p").val();

var items = [];

items = gC(b,c,p);
var i = 0;

$('td').each(function(index) {
$(this).attr('bgcolor', items[i]);
i++;
}

如何访问数组?

谢谢!

最佳答案

您不会从 AJAX 调用返回,而是让它在完成时调用回调函数。

function gC(b,c,p) {
var retval = [];
$.getJSON('getmonths', 'b='+b+'&c='+c+'&p='+p, processData);
}

function processData(data){
var retval = [];
$.each(data, function(key, val) {
retval.push(val);
//alert(retval.pop());
});
alert(retval);
}

processData 将在 AJAX 调用完成时调用。这不能将值返回给另一个函数,因此您的所有逻辑都必须在此回调函数内。

更新:您还可以将回调函数传递给 gC,以便在完成时调用。

function gC(b,c,p,f) {
var retval = [];
$.getJSON('getmonths', 'b='+b+'&c='+c+'&p='+p, function(d){
if(typeof f == 'function'){
f(d);
}
});
}

然后像这样调用gC:

gC(b,c,p,function(data){
var retval = [];
$.each(data, function(key, val) {
retval.push(val);
//alert(retval.pop());
});
alert(retval);
});

更新 2:我看到了您添加到问题中的代码。这需要在回调中完成。

gC(b,c,p,function(data){
var items = [];
$.each(data, function(key, val) {
items.push(val);
});
$('td').each(function(index){ // You don't need a separate i variable
// you can just use the index from the loop
$(this).attr('bgcolor', items[index]);
}
})

关于javascript - 使用 jQuery each() 函数返回一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6942034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com