我有一个普通的对象,其中包含一个字符串化的选择器名称列表,如此。
{selector1: "#selector1", selector2: "#selector2"}
我想用$ .each迭代对象并用这些对象的值替换字符串,即最终结果应如下所示:
{selector1: value of $("#selector1"), selector2: value of $("selector2")}
我现在的代码是:
$.each(args.vars, function(key, value){
if (value.toString().charAt(0) == "#")
value = $(value).val();
});
问题是显然$ .each没有通过引用传递,因此args.vars中的值保持不变,因为" value"在循环结束时被丢弃。当我用$ .each迭代它时,如何更改对象属性的值?
答案 0 :(得分:2)
使用简单的for
循环:
for (var key in vars) {
if (vars[key][0] == "#") {
vars[key] = $(vars[key]).val();
}
}
答案 1 :(得分:0)
args.vars[key] = $(value).val();