0

サーバーから JSON を取得し、Web ページの入力ボックスの値を設定したいと考えています。JSON ペアは、入力の ID と値です。テスト JSON は次のようになります

[{"city":"Rochester, Monroe County","country":"US","streetAddress":"12 Gibbs Street"}]

実際の JSON は、1 つのオブジェクトに含まれるキーと値のペアが増えると、はるかに長くなります。

このハードコードされたステートメントを使用すると、入力値が設定されます。

$('#city').val( responseParsed[0].city );  //this sets the city input to a value

$.each でそれを拡張/自動化しようとしました。私はそれを使用することを学ぼうとしています。私はそれのこつを得ることができません。何度も試した結果、今のところ緊張しています。ajax の成功オプションのコードを次に示します。

success: function ( response ) {    
    if ( response ) {
        responseParsed = JSON.parse( response );
        $.each( responseParsed, function( key, value ){
            $('#key').val( responseParsed[0].key );
            console.log( $('#key').val( responseParsed[0].key ) + '|eachItem' ); // [object Object]|eachItem only once & input values do not change
        });
    }
4

2 に答える 2

3

responseParsed内で使用する必要はありません$.each。それがパラメータkeyvalueパラメータの意味です。

あなたのvalue(またはthis) は、配列の現在の要素です。

$.each(responseParsed, function(key, value){
    $('#city').val(value.city);
});

オブジェクトから各キーを取得するには、別のキーが必要です$.each:

$.each(responseParsed, function(index, data){
    $.each(data, function(key, value){
        $('#'+key).val(value);
        console.log(key, value);
    });
});
于 2013-09-25T20:33:26.780 に答える
0

私はあなたがこれを望んでいると思います:

success: function ( response ) {    
    if ( response ) {
        responseParsed = JSON.parse( response );
        $.each( responseParsed[0], function( key, value ){
            $('#' + key).val(value);
        });
    }
于 2013-09-25T20:38:21.337 に答える