为循环创建键:对象的值对,并为每个对象设置变量

时间:2012-12-20 13:54:11

标签: javascript jquery

  

可能重复:
  How to create object property from variable value in javascript?

好的 - 这对我来说很难。我正在使用jQuery循环遍历所有的class =“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"

3 个答案:

答案 0 :(得分:2)

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

feature[dataName] = dataValue;

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

答案 1 :(得分:0)

您可以像这样编写代码:

feature[$(this).attr("name")] = $(this).val()

答案 2 :(得分:0)

使用此语法设置值:

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