2013-03-14 28 views
-2

我有这个变量,它包含多个值。我希望价值是唯一的。例如: 'Q1' + NUM:的document.getElementById( “Q1”)值制作灵活的变量名称

注:NUM有我的PHP页面上的唯一编号

var newItem = { 

    'methv': document.getElementById("methv").value, 
    'q1': document.getElementById("q1").value, 
    'q2':document.getElementById("q2").value, 
    'q3':document.getElementById("q3").value, 
    'q4':document.getElementById("q4").value, 
    'comm':document.getElementById("comm").value, 

}; 

NUM的值的数值:

<input id="num" type="hidden" value="<?php echo $post['unique person code']; ?>" /> 

我希望这是添加到变量时的唯一标识符。例如 'methv' + NUM:的document.getElementById( “methv”)值

+3

这个问题在目前的形式中没有任何意义。 “想要价值变得灵活”是什么意思?请详细说明。 – 2013-03-14 18:59:09

+0

像在一个独特的价值标识这个值,因为这个功能将被多次调用 – user2162768 2013-03-14 19:01:57

+1

请编辑您的问题,以提供样本用例。我还是不明白。 – 2013-03-14 19:02:31

回答

0

您可以使用[]访问像数组这样的对象。所以,你可以这样做:

var num = document.getElementById("num").value; 

var newItem = {}; 
newItem['methv'+num] = document.getElementById("methv").value; 

或者,你可以使用num作为自己的密钥,然后窝那下一个对象。像这样:

var num = document.getElementById("num").value; 

var newItem = {}; 
newItem[num] = { 
    "methv": document.getElementById("methv").value 
}; 
+0

谢谢!对不起,以前的困惑很难解释的情况大声笑 – user2162768 2013-03-14 19:19:09

+0

没关系。在看了这个问题之后,我想出了你想要做的事情:) – 2013-03-14 19:22:36

-1

eval(...)是答案:

eval(document.getElementById('methv').value + ": document.getElementById('methv').value"); 

EVAL允许您生成一个使用你的变量作为变量名的值源代码。

+0

'eval'是***从不***答案!我建议做'newItem [document.getElementById('methv').value]'而不是。 – 2013-03-14 19:04:56

+0

此代码非常不安全!它甚至不是正确的语法。 – 2013-03-14 19:11:05