2011-12-04 39 views
2

我想在一个对象来代替一个变量,但不知道该变量的关键......例如:对象中的替换值与jQuery

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考试PLE。
你能帮我解答吗?非常感谢。

回答

5

您可以通过名字用一个简单的索引来访问一个对象的属性:

this[val] = value; 

只需注意在$.eachthis上下文设置为您当前迭代的价值。你真正的意思:

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 } 

或者,如果你想获得此相同的结果,没有修改,那么你可以做:

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

oggod ...定义愚蠢... –

+0

@Répás - 完全没有 - 当我在学习之前,我问过同样的问题:) –

+0

是的,我使用扩展只是忘了这个方法唉。 ^^ –