Ich habe ein Objekt, das ein Ergebnis einer geparsten json ist:Das Finden der Array Schlüssel, die Element-ID angepasst
{
"AKH":{
"name": "Amonkhet",
"code": "AKH",
"releaseDate": "2017-04-28",
"border": "black",
"block": "Amonkhet",
"type": "expansion"
"cards": [
{
"artist": "Min Yum",
"cmc": 5,
"colorIdentity": [
"W"
],
"colors": [
"White"
],
"manaCost": "{3}{W}{W}",
"multiverseid": 426703,
"name": "Angel of Sanctions",
"number": "1",
"power": "3",
"rarity": "Mythic Rare",
"subtypes": [
"Angel"
],
"toughness": "4",
"type": "Creature — Angel",
"types": [
"Creature"
]
},
"SHM" : {
"name": "Shadowmoor",
"code": "SHM",
"magicCardsInfoCode": "shm",
"releaseDate": "2008-05-02",
"border": "black",
"type": "expansion",
"block": "Shadowmoor",
"cards": [
{
"artist": "Kev Walker",
"colors": [
"White"
],
"manaCost": "{W}",
"name": "Apothecary Initiate",
"number": "1",
"power": "1",
"rarity": "Common",
"subtypes": [
"Kithkin",
"Cleric"
],
"toughness": "1",
"type": "Creature — Kithkin Cleric",
"types": [
"Creature"
]
},
Beachten Sie die Taste, um den Code übereinstimmt ... das wird immer der Fall für dieses Szenario sein.
Ich mache Elemente aus dem Namen und Codes
setList += "<a href='#' onClick='setLinks(this.id)' id=" + setCode + ">" + setName + "</a> " + "<br>"
und bin versucht nun, eine Funktion zu erstellen, die die ID übereinstimmt (setCode) mit dem Schlüssel in meinem Objekt.
jetzt habe ich eine Funktion, dass die Kartennamen finden tut und listet sie alle:
function cardPop(listings){
var cards = listings.cards;
for (var i=0; i < cards.length; i++){
var card = cards[i];
cardNum = Object.keys(cards)
}
$.each(cards, function(cardNum, cardListing) {
cardName = cardListing.name
console.log(cardName)
});
};
in Wirklichkeit aber möchte Ich mag für diese Karte Bevölkerung nur um die Karten in der Liste zu geben, die Spiele Der Link hat geklickt.
function setLinks(clicked_id)
if clicked_id == ?
Ich fuzzed mit einer Reihe von Dingen .. und bin genug ratlos. Ich habe Stackoverflow und das allmächtige Google gesurft, aber es fällt mir schwer, meine Frage zu formulieren, um die richtigen Ergebnisse zu erhalten. Manche Dinge bringen mich nahe an keine Zigarre. Jede Hilfe wird sehr geschätzt!
EDIT:
@gvmani .. Vielen Dank für die Hilfe! Hier ist, womit ich endete. Nicht das endgültige Produkt, aber für jetzt arbeiten!
$(document).ready(function(){
$.getJSON('https://api.myjson.com/bins/s7and', function (data) {
json = data
set_codes = Object.keys(data);
for (var i=0; i < set_codes.length; i++){
set = set_codes[i];
}
$.each(data, function(set_codes, listings){
setName = listings.name
setCode = listings.code
setPop(setCode, setName)
});
});
});
//Set population
function setPop(){
var setList = "";
setList += "<a href='#' onClick='setLinks(this.id)' id=" + setCode + ">" + setName + "</a> " + "<br>"
$('.things').append(setList);
};
// Function to Generate Card List
function setLinks(clicked_id){
$.each(json, function(setCode, setListing) {
$.each(setListing.cards,function(cardNum, cardListing){
if(setListing.code === clicked_id){
console.log(cardListing.name);
}
});
});
}
Ihr Code ist schwer zu sehen, korrigieren Sie bitte die Vertiefung. – borislemke
Ich habe den Einzug korrigiert, aber die Syntax ist immer noch komplett aus. Könnten Sie die tatsächlichen Daten und den Quelltext kopieren + einfügen? –
Dieser JSON ist in allen Ländern der Welt ungültig – quirimmo