In Bezug auf die Notwendigkeit, „die Eigenschaften und Werte von Objekten in js zu durchlaufen“. Der Grund besteht darin, ein js-Plug-in zu erstellen, das den Tabelleninhalt teilweise aktualisiert.
Problem: Der Attributwert des Objekts konnte nicht durch Durchlaufen des Attributnamen-Arrays abgerufen werden
Der anfängliche Fehlercode lautet wie folgt:
for(var i=0;i<dataList.length;i++) { var dataLine="<tr>"; for(var j=0;j<filedList.length;j++){ dataLine+="<td>"+dataList[i].filedList[j]+"</td>"; } dataLine+="</tr>"; $("#"+tableName).append(dataLine); }
Zunächst enthält dataList ein Array von Objekten; fileList enthält ein Array von Attributfeldnamen von Objekten. Zuerst dachte ich so: Durchlaufe die Datenliste und erhalte jedes Mal ein Objekt, verschachtele dann eine for-Schleife, durchlaufe die Feldliste, erhalte jedes Mal einen ihrer Attributwerte und setze ihn dann zu einer Tabelle zusammen .
Zum Beispiel: dataList[0] ist ein Emp-Objekt und Emp hat Attribute wie id und name. Normalerweise können wir den ID-Wert des aktuellen Emp-Objekts über dataList[0].id abrufen. Wenn Sie jedoch das Attributfeldarray durchlaufen, können Sie dataList[0].filedList[0] nicht auf diese Weise verwenden. Dies bedeutet nicht, dass der Wert nicht in filedList[0] abgerufen wird, da ich bereits über warning(filedList[0]) den ID-Wert 1 erhalten habe. Warum scheitert die Übernahme? Weil es nach einer Eigenschaft namens fileList[0] im Emp-Objekt sucht! Natürlich gibt es im Emp-Objekt kein solches Attribut, daher schlägt die Erfassung fehl, wie sie sollte. Wie erhalten wir also den Attributwert des Objekts?
Lösung: Verwenden Sie zum Durchlaufen die „erweiterte for-Schleife“
Der korrekte Code lautet wie folgt:
for(var i=0;i<dataList.length;i++) { var dataLine="<tr>"; for(var filedName in dataList[i]){ dataLine+="<td>"+dataList[i][filedName]+"</td>"; } dataLine+="</tr>"; $("#"+tableName).append(dataLine); }
Lösungsidee: Da dataList[i] ein Objekt ist, kann ich jedes Mal den Attributnamen dieses Objekts abrufen und dann den Attributwert dieses Attributs über dataList[i][filedName] abrufen, dh Objekt [Attributname] .
function displayProp(obj){ var names=""; for(var name in obj){ names+=name+": "+obj[name]+", "; } alert(names); }
Das obige ist der detaillierte Inhalt vonDetaillierte Code-Erklärung, wie Javascript die Attributwerte eines Objekts durchläuft. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!