假设我有以下内容:
var address = {id: 100, name: "Gregg", addressOne: "111 1st Street"};
一个HTML表单:
<input id="name" />
<input id="addressOne" />
我想知道是否有办法迭代表单的所有INPUT元素,并根据JSON对象的属性设置它们的值。以下是我可以采取的漫长的方法:
$.each($("input"), function(idx, input) {
if (input.attr("id") == "name") input.val( address.name );
if (input.attr("id") == "addressOne") input.val( address.addressOne );
});
我想知道在没有IF语句的情况下是否有办法完成上述操作。 JavaScript中是否有某种方法可以将两者动态映射在一起。我希望这是有道理的。
答案 0 :(得分:5)
答案 1 :(得分:1)
$("#name").val(address.name);
$("#addressOne").val(address.addressOne);
答案 2 :(得分:0)
$.each($("input"), function(idx, input) {
if (address[input.attr("id")]) {
address[input.attr("id")]
}
});
答案 3 :(得分:0)
答案 4 :(得分:0)
我认为这可行,但我将var地址重新定义为JSON对象。
var address = {id: 100, name: "Gregg", addressOne: "111 1st Street"}
迭代器可以是:
$.each($("input"), function(idx, input) {
$(this).val( address[input.id] );
});
我希望这会有所帮助。
答案 5 :(得分:0)
<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] );
}
请注意,地址变量现在是对象文字而不是数组。