Jquery:如何使用动态名称创建普通对象?

时间:2018-06-05 16:23:36

标签: javascript jquery

我在docs中发现你可以创建一个像这样的普通对象:

var y = {
  name: "Pete",
  age: 15
};

但是,我想动态地添加名称和值,例如,如果我们有类似的东西:

<input type="text" name="$dynamicName" id="myinput">

我可以创建一个像这样的对象:

var y = {
  name: "Pete",
  $('#myinput).attr('name'): $('#myinput).val(),
};

但这会引发错误:

  

SyntaxError:missing:属性id

之后

如何使用$('#myinput).attr('name')作为普通对象的名称?

3 个答案:

答案 0 :(得分:4)

我认为这是你想要做的事情,它会将age项添加到数组中,然后将其值设置为文本框onclick中的任何内容。

&#13;
&#13;
var y = {
  name: "Pete"  
 };
function go(){
 y[$('#myinput').attr("name")] = $('#myinput').val();
console.log(y)
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text"name="age" id="myinput">
<input type="button"  onclick="go(); return false;">
&#13;
&#13;
&#13;

答案 1 :(得分:3)

尝试用作数组

喜欢:

y[$('#myinput').attr('name')] = $('#myinput').val();

然后你可以把它作为一个简单的对象来访问。

答案 2 :(得分:0)

尝试使用:

var y = {name: "Pete"};
y[$('#myinput').attr('name')] = $('#myinput').val()];

您还有未公开的单引号:

var y = {
    name: "Pete",
    $('#myinput').attr('name'): $('#myinput').val(),
};