2011-09-06 36 views
0

我有一个从数据库返回的JSON对象。 JSON对象中的值来自一个充满输入标签的HTML页面。自动将JSON对象的值应用于输入标记

var userTemplate = { }; 
$("#tabBasic").find($("input")).each(function() { 
    userTemplate[this.name] = this.value; 
}); 

现在我想重新将JSON中的值应用到页面上的输入标签。

有没有办法使用jQuery自动执行此操作?

回答

2

你刚刚完成了任务转换。

$("#tabBasic").find("input").each(function() { 
    this.value = userTemplate[this.name]; 
}); 

我假设每个输入都有一个唯一的name属性。


您也可以将函数传递给val()[docs]方法。 return值被分配为新值。

$("#tabBasic").find("input").val(function() { 
    return userTemplate[this.name]; 
}); 
+0

+1我不知道'.val()'函数参数,很酷!然而,在这个例子中,切入追逐并选择'$('#tabBasic input')'而不是更好?甚至可能是'$('input','#tabBasic')'? –

+0

@richardneililagan:这取决于。在一些浏览器中,做一个ID选择后跟一个'.find()'实际上会更好。和'$('input','#tabBasic')',简洁最终转化为'$(“#tabBasic”)。find(“input”)'[under the hood](https://github.com /jquery/jquery/blob/1.6.2/src/core.js#L170-174),所以最终由于转换(以及较少可读的IMO)而变得较慢。在大多数情况下,三者之间的表现差异可以忽略不计,并且会归结为个人偏好。 :) – user113716