-1

我有一个系列输入标签,如

<input id="t1" value="1">
<input id="t2" value="2">
<input id="t3" value="3">

然后我想以 id/value 格式构建一个 javascript 对象,例如:

input:
{
   ["t1",1]
   ["t2",2]
   ["t3",3]
}

我怎样才能做到这一点?用哪个函数或方法?用数组?

4

3 回答 3

3

您描述的对象无效。假设你的意思是:

{
   "t1":1,
   "t2":2,
   "t3":3
}

只需遍历元素,并检查 id 和 value 属性即可获取数据。

var inputs = document.getElementsByTagName('input');
var ob = {};
for (var i = 0; i < inputs.length; i++) {
  var input = inputs[i];
  ob[input.id] = input.value;
}
于 2012-04-08T17:10:46.480 回答
2

您的输出对象没有意义,它是一个没有键的对象。假设你真正想要的是:

{
    "t1": 1,
    "t2": 2,
    "t3": 3
}

你可以做这样的事情,inputVals并将包含上面的对象:

var inputs = document.getElementsByTagName('input'),
    inputVals = {};

for (var i = 0, il = inputs.length; i < il; i++) {
    inputVals[inputs[i].id] = inputs[i].value;
}
于 2012-04-08T17:13:43.143 回答
0

jQuery serializeArray 在获得你想要的东西方面有很长的路要走。

http://api.jquery.com/serializeArray/

它不会准确返回您在问题中提出的数组格式,但它应该为您提供一些可以使用的东西。

于 2012-04-08T17:46:53.920 回答