我从服务器获取JSON,我想在网页上设置输入框的值。 JSON对是输入的id和值。测试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
});
}
答案 0 :(得分:3)
您无需在responseParsed
内使用$.each
。这就是key
和value
参数的含义。
您的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);
});
});
答案 1 :(得分:0)
我想你想要这个:
success: function ( response ) {
if ( response ) {
responseParsed = JSON.parse( response );
$.each( responseParsed[0], function( key, value ){
$('#' + key).val(value);
});
}