2016-09-22 6 views
-1

Ich habe folgendes Objekt:Iterate durch Objektschlüssel, der keinen Namen hat

response = 
    { 
     "5": { 
      "name": "surgeon bueno", 
      "country": "Spain", 
      "antiquity": "renewal", 
      "amount": "2686.97 USD", 
      "sellers": { 
       "Frank": "2690.58 USD", 
       "Bob": "1690.58 USD", 
      } 
     }, 
     "11": { 
      "name": "Alex Lloyd", 
      "country": "American Samoa", 
      "antiquity": "new client", 
      "amount": "0.0 USD" 
     }, 
     "12": { 
      "name": "alex lloyd", 
      "country": "Aruba", 
      "antiquity": "new client", 
      "amount": "0.0 USD" 
     } 
    } 

Und ich alle Werte durchlaufen und sie in einer neuen Zeile in einer Tabelle anzuzeigen, wie folgt, würde Ich mag eine neue hinzufügen Zeile für diejenigen, die "sellers" im JSON haben z. wie , wie kann ich auch durch sie iterieren und eine neue Zeile anzeigen, wenn sie existieren? Da sie keine Schlüsselnamen haben.

Dies ist der Code, wie es steht, ich möchte jetzt eine Zeile hinzufügen, wenn sie Verkäufer haben und diese Daten anzeigen.

$.each(response, function(i, item) { 
      $('#modal-table tbody').append("<tr class='grey'><td>" + item.name + "</td><td>" + item.country + "</td><td>" + item.antiquity + "</td><td>" + item.amount + "</td>"); 

     }); 

Dies ist ein neuer Code im Vergleich zum ursprünglichen Post.

+2

Mögliches Duplikat [erkennen, wenn das Objekt leer ist oder nicht jquery] (http://stackoverflow.com/questions/39636048/detect-if-object-is-empty-or- nicht-jquery) – guradio

Antwort

0

Sie wollen wahrscheinlich Vanille Javascript iterieren mit:

for (var i in response) { 
    $('#modal-table tbody').append("<tr class='grey'><td>" + response[i].name + "</td><td>" + response[i].country + "</td><td>" + response[i].antiquity + "</td><td>" + response[i].amount + "</td>"); 
} 

Das über das Objekt iterieren wird und setzen var i zu jedem Schlüssel.

$(function() { 
 
    var response = { 
 
    "5": { 
 
     "name": "surgeon bueno", 
 
     "country": "Spain", 
 
     "antiquity": "renewal", 
 
     "amount": "2686.97 USD", 
 
     "sellers": { 
 
     "Frank": "2690.58 USD", 
 
     "Bob": "1690.58 USD", 
 
     } 
 
    }, 
 
    "11": { 
 
     "name": "Alex Lloyd", 
 
     "country": "American Samoa", 
 
     "antiquity": "new client", 
 
     "amount": "0.0 USD" 
 
    }, 
 
    "12": { 
 
     "name": "alex lloyd", 
 
     "country": "Aruba", 
 
     "antiquity": "new client", 
 
     "amount": "0.0 USD" 
 
    } 
 
    }; 
 

 
    for (var i in response) { 
 
    $('#modal-table tbody').append("<tr class='grey'><td>" + response[i].name + "</td><td>" + response[i].country + "</td><td>" + response[i].antiquity + "</td><td>" + response[i].amount + "</td>"); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<table id="modal-table"> 
 
    <tbody></tbody> 
 
</table>