用jQuery替换对象中的一个值

3
我希望能够在不知道变量键的情况下替换对象中的变量,例如:
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个回答

6
您可以使用简单的索引按名称访问对象的属性:
this[val] = value; 

请注意,在$.eachthis上下文被设置为当前迭代的值。你真正想表达的是:

v[key] = val;

您也可以查看jQuery的扩展函数。

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);

@Répás - 没有关系 - 当我在学习时,我也曾经问过同样的问题 :) - Adam Rackis
是的,我使用了extend方法,只是忘记了这个方法而已。^^ - Répás

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接