0

我从我的服务器获取 JSON,我想在网页上设置输入框的值。JSON 对是输入的 id 和 value。测试 JSON 看起来像

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

真正的 JSON 会更长,在一个对象中有更多的键值对。

当我使用这个硬编码语句时,它会设置输入值。

$('#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 回答