Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将JSON属性映射到HTML ID以轻松设置值_Javascript_Jquery_Json - Fatal编程技术网

Javascript 将JSON属性映射到HTML ID以轻松设置值

Javascript 将JSON属性映射到HTML ID以轻松设置值,javascript,jquery,json,Javascript,Jquery,Json,假设我有如下情况: var address = {id: 100, name: "Gregg", addressOne: "111 1st Street"}; 和HTML表单: <input id="name" /> <input id="addressOne" /> 我想知道是否有一种方法可以在不使用if语句的情况下执行上述操作。JavaScript中是否有某种方法可以动态地将两者映射到一起。我希望这是有意义的。你可以试试这个 $.each($("input"),

假设我有如下情况:

var address = {id: 100, name: "Gregg", addressOne: "111 1st Street"};
和HTML表单:

<input id="name" />
<input id="addressOne" />
我想知道是否有一种方法可以在不使用if语句的情况下执行上述操作。JavaScript中是否有某种方法可以动态地将两者映射到一起。我希望这是有意义的。

你可以试试这个

$.each($("input"), function(idx, input) {
   if (address[input.attr("id")]) {
       address[input.attr("id")]
   }
});
$('input').each(function(){
    $(this).val(address[this.id]);
});

.

您可以使用
val
方法:

$('input').val(function(i, v){
    return address[this.id]
})

我认为这是可行的,但我将var地址重新定义为JSON对象

var address = {id: 100, name: "Gregg", addressOne: "111 1st Street"}
迭代器可以是:

$.each($("input"), function(idx, input) {
    $(this).val( address[input.id] );
});​
我希望这能有所帮助。


<input type="text" id="name" />
<input type="text" id="addressOne" />

var address = { id: 100, name: "Gregg", addressOne: "111 1st Street" },
prop, $field;

for ( prop in address ) {
    $( "#" + prop ).val( address[prop] );
}
var地址={id:100,名称:“格雷格”,地址一:“111第一街”}, 道具场; (地址中的道具){ $(“#”+prop).val(地址[prop]); }
注意,address变量现在是一个对象文字而不是数组


Fiddle:

地址不应该是
对象
而不是
数组
?也许可以尝试类似
input.val(address[input.id])
?我想了想,但是如果在对象地址中添加更多的输入和值会怎么样?这适用于这种特殊情况。
$.each($("input"), function(idx, input) {
    $(this).val( address[input.id] );
});​
<input type="text" id="name" />
<input type="text" id="addressOne" />

var address = { id: 100, name: "Gregg", addressOne: "111 1st Street" },
prop, $field;

for ( prop in address ) {
    $( "#" + prop ).val( address[prop] );
}