gpt4 book ai didi

jquery - 如何在 JQuery 中创建 JSON 数组?

转载 作者:行者123 更新时间:2023-12-01 01:26:28 25 4
gpt4 key购买 nike

我想创建一个像这样的 JSON 数组:

var ddBasic = [
{ text: "Facebook", value: 1, },
{ text: "Twitter", value: 2, },
{ text: "LinkedIn", value: 3, },
{ text: "Foursquare", value: 4, }
];

我使用的是来自last.fm的数据,所以它会是这样的:

var tags = [
{ text: "rock", value: "rock", },
{ text: "pop", value: "pop", },
];

最后需要有一个逗号,所以 ddslick dropdown 函数会忽略 imageSrc 和其他可用于下拉列表的内容,否则会引发此错误:

Uncaught TypeError: Cannot read property 'imageSrc' of undefined

为了将所有内容联系在一起,我有:

$('#tag').ddslick({
data: tags,
onSelected: function(selectedData) {}
});

这是获取标签的函数:

var tags = [];

var getTopTracks = function () {
$.getJSON(
settings.PHP_REQUEST_URL, {
method: "tag.getTopTags",
api_key: settings.LASTFM_APIKEY,
format: "json",
},

function (data) {
var limit = 50;

data.toptags.tag.sort(function (t1, t2) {
return t2.count - t1.count;
});

$.each(data.toptags.tag, function (i, item) {
if (i > limit) return false;
console.log(item.name);
tags.push({
text: item.name,
value: item.name
});
});
});
};

// event handlers (load quando o form é invocado só)
getTopTracks();
alert(tags.length);

// define tema para a combobox
$('#tag').ddslick({
data: tags,
onSelected: function (selectedData) {}
});

我怎样才能做到这一点?

最佳答案

var tags = []; //initialised tags with length 0
getTopTracks(); //fetching date in background (!)
alert(tags.length); //running while data is still fitched (unless you've a 0ping connection => alerting length 0

在您使用警报时,很可能 tags 未填充,因为 $.getJSON() 是一个异步请求,这意味着该请求将在后台处理并继续执行脚本。您必须像填充数组一样使用回调方法。

This, getJSON, is a shorthand Ajax function, which is equivalent to:
$.ajax({
url: url,
dataType: 'json',
data: data,
success: callback
});

http://api.jquery.com/jQuery.getJSON/

//getJSON success callback:
function (data) {
var limit = 50;

data.toptags.tag.sort(function (t1, t2) {
return t2.count - t1.count;
});

$.each(data.toptags.tag, function (i, item) {
if (i > limit) return false;
console.log(item.name);
tags.push({
text: item.name,
value: item.name
});
});
//alert the length AFTER the tags been pushed
alert(tags.length);

// define tema para a combobox
$('#tag').ddslick({
data: tags,
onSelected: function (selectedData) {}
});
}

关于jquery - 如何在 JQuery 中创建 JSON 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12874897/

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