1

可能重复:
如何从 javascript 中的变量值创建对象属性?

好的 - 这对我来说很难。我正在使用 jQuery 遍历我所有的 classes="data"。然后,我想使用每个特定的“dataName”和“dataValue”为我的功能分配属性。但是,一旦完成,我只有“dataName =(循环的最后一个值)”的属性。如何每次都分配我的 dataName 变量来创建一个新属性 - 而不是我只想创建一个名为“dataValue”的属性

function pushAttributesintoFeature(feature) {  
  $(".data").each( function(){
    var dataName = $(this).attr("name")
    var dataValue = $(this).val()   
    feature.dataName = dataValue
  })
}

例子:

<input class="data" name="radius" value="15">
<input class="data" name="height" value="5">

一旦我执行脚本,我就剩下:feature.dataName = "5" 但我想要:feature.radius="15"feature.height = "5"

4

3 回答 3

2

您可以使用方括号语法来访问带有变量的属性:

feature[dataName] = dataValue;

这将设置一个属性,其标识符是 的dataName而不是文字字符串“dataName”。

于 2012-12-20T13:55:29.483 回答
0

您可以这样编写代码:

feature[$(this).attr("name")] = $(this).val()
于 2012-12-20T13:56:29.813 回答
0

使用此 sintax 设置值:

function pushAttributesintoFeature(feature) {  
  $(".data").each( function(){
    var dataName = $(this).attr("name")
    var dataValue = $(this).val()   
    feature[dataName] = dataValue;
  })
}
于 2012-12-20T13:56:55.510 回答