-3

私は次のようなものを返すjsonファイルを持っています:

{"id0":"58955","id1":"15614","id2":"897987"}

そのjsonを解析し、たとえばidentifier.id1で値を呼び出します

すべての識別子を for ループで表示したいのですが、これを試しましたが、「未定義未定義未定義」になります。ループ内で identifier.idk を identifier.id1 に手動で置き換えると、機能し、15614 が表示されます。私の間違いはどこですか?

ここに私のコードがあります

identifier = JSON.parse(output)

var html = '<table border="0">';
html += '<tr valign="top" ><td><b>Identifiers :</b></td>';


for (var k = 0; k < 3; k++) 
    {
        html += '<tr>';
        html += identifier.idk;
        html += '</tr>';
};

html += '</tr></table>';
4

2 に答える 2

7

オブジェクトでidkを探しているからです!JavaScript は、文字列 "id" と整数 k を連結する必要があることを魔法のように認識していません。そうするように伝える必要があります。

ブラケット表記を使用します。

identifier["id" + k];

次の問題は、tds がありません。ループに tr ではなく td が必要だと思います。

于 2013-04-12T13:14:23.500 に答える
1

identifier.idk使用するのではなくidentifier["id"+k]

説明:

identifier.idkidk識別子オブジェクト内で文字通り呼び出されたプロパティを探します。プロパティ参照の[]形式により、文字列を作成し、それをプロパティ名として使用できます。

一般的なコメントとして、文字列操作を行ってその場でプロパティ名を作成するよりも、そこに配列を入れた方が良いかもしれません。

于 2013-04-12T13:14:58.283 に答える