So erstellen Sie eine JSON-array in JQuery?
Ich möchte erstellen Sie eine JSON-array wie dieses:
var ddBasic = [
{ text: "Facebook", value: 1, },
{ text: "Twitter", value: 2, },
{ text: "LinkedIn", value: 3, },
{ text: "Foursquare", value: 4, }
];
Ich bin mit Daten vom letzten.fm, so wäre es so etwas wie dieses:
var tags = [
{ text: "rock", value: "rock", },
{ text: "pop", value: "pop", },
];
Es muss ein Komma am Ende, so dass die ddslick dropdown-Funktion ignoriert die imageSrc und andere Dinge, die Sie verwenden können, für ein dropdown, andere wirft er diese Fehlermeldung:
Uncaught TypeError: Cannot read property 'imageSrc' of undefined
Um alles miteinander zu verbinden, die ich habe:
$('#tag').ddslick({
data: tags,
onSelected: function(selectedData) {}
});
Dies ist die Funktion, bekommt die tags:
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) {}
});
Wie kann ich dies erreichen?
Du sagst es funktioniert mit dem Komma? Ich sehe nicht, wie, dass würde einen Unterschied machen.
Oh...anscheinend war es nicht das Komma, es ist etwas in meinem array. Ich bin, dass Werte mit
Überprüfen Sie die Konsole für Fehler... ist
möglich, aber dies würde bedeuten, es gibt eine andere
Behoben, es war, weil ich versuchte, um Werte vor AJAX fertig ist die Anfrage. Alle Feste. Vielen Dank für Eure Hilfe.
Oh...anscheinend war es nicht das Komma, es ist etwas in meinem array. Ich bin, dass Werte mit
tags.push({"text" : item.name, "value" : item.name});
- ist das die korrekte syntax? Länge zeigt 0 nach schieben, das macht mich Frage, was falsch ist.Überprüfen Sie die Konsole für Fehler... ist
item
definiert?möglich, aber dies würde bedeuten, es gibt eine andere
tags
variable versteckt sich irgendwo (gut: wo?) weil sonst push
werfen würde so etwas wie can not call push on undefined
Behoben, es war, weil ich versuchte, um Werte vor AJAX fertig ist die Anfrage. Alle Feste. Vielen Dank für Eure Hilfe.
InformationsquelleAutor swiftcode | 2012-10-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Auf den Punkt, den Sie mit Hilfe des alert-es ist sehr wahrscheinlich
tags
ist nicht gefüllt, wie$.getJSON()
ist ein asynchronus Anfrage, also die Anfrage bearbeitet werden, werden in den hintergrund und die Ausführung des Skripts Fort. Sie müssen die callback-Methode, wie Sie schon für das füllen der Arrays.http://api.jquery.com/jQuery.getJSON/
Bewegen Sie Ihren code nach der
$.each
in der callback-Methode. So stellen Sie sicher es ist, die ausgeführt werden, nachdem das array gefüllt wurde.Danke, das mein Problem gelöst!
Wert ist in Ordnung, aber text-Eigenschaft, die zeigen, wie undefined:
HM kann nicht wirklich Folgen. Würden Sie mir schreiben eine andere Frage für dein problem möglich mit einem minimal-Beispiel?
InformationsquelleAutor nuala