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] );
}