用jQuery替换对象中的值

时间:2011-12-04 18:53:32

标签: javascript jquery object replace foreach

我想替换对象中的变量,但不知道变量的键...例如:

var parameters = new Object();
    parameters.startregion = null;
    parameters.fx_adultnum = 2;

...稍后

$adultnum.change(function(){ setParameters("fx_adultnum", $adultnum.val() );});

和setParameters函数(绝对不起作用:P

function setParameters(v, value){
    console.log(parameters);
    $.each(parameters, function(key, val) {
        if (key == v) {
            console.log(key);
            console.log(val);
            $(this).val(value); // <-- not works
            }
    });
    console.log(parameters);
}

我想将fx_adultnum的值替换为例如4 你能帮忙吗?非常感谢。

1 个答案:

答案 0 :(得分:5)

您可以使用简单的索引按名称访问对象的属性:

this[val] = value; 

请注意,在$.each this上下文设置为您当前正在迭代的值。你的意思是:

v[key] = val;

您也可以查看jQuery的extend函数

var A = { "x": 1, "y": 2 };
var B = { "y": "3", "z": 12 };

$.extend(A, B);

now A is { "x" : 1, "y": "3", "z": 12 }

或者如果你想得到同样的结果,没有修改A,那么你可以这样做:

var newObj = $.extend({}, A, B);