我在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')
作为普通对象的名称?
答案 0 :(得分:4)
我认为这是你想要做的事情,它会将age
项添加到数组中,然后将其值设置为文本框onclick
中的任何内容。
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;
答案 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(),
};