使用jQuery $ .each迭代它时改变Plain Object属性的值

时间:2014-03-22 12:35:37

标签: javascript jquery

我有一个普通的对象,其中包含一个字符串化的选择器名称列表,如此。

{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迭代它时,如何更改对象属性的值?

2 个答案:

答案 0 :(得分:2)

使用简单的for循环:

for (var key in vars) {
    if (vars[key][0] == "#") {
        vars[key] = $(vars[key]).val();
    }
}

演示:http://jsfiddle.net/xYZka/

答案 1 :(得分:0)

args.vars[key] = $(value).val();