jQuery 向空对象添加键值对

6
在jQuery中,我可以像这样为元素添加多个属性...
var input = $('<input/>').attr({ type : 'text', value : 'New Value'});

我的问题是,如何使用像这样的变量来实现这个...
var input = $('<input/>').attr(inputAttr);

我原本认为inputAttr应该是一个对象,并且我可以添加属性到这个对象中,但我可能错了。这是我尝试做这件事的众多尝试之一。
var inputAttr = {};
inputAttr.add({ type: 'text' });
inputAttr.add({ value : 'New Value' });

我也尝试了这样做...

var inputAttr = {};
inputAttr.add('type: text');
inputAttr.add('value : New Value');

我觉得inputAttr可能应该是一个数组,这样输出的字符串是正确的,但我不确定如何将其变成一个对象(我认为它应该是一个对象)。

var inputAttr = [];
inputAttr.push('type: text');
inputAttr.push('value : New Value');

// Then added object brackets like so
var input = $('<input/>').attr({inputAttr});

非常感谢您的帮助!

提前致谢!

2个回答

14

对象属性仅通过名称访问,它不是一个数组。

var inputAttr = {};
inputAttr.type = 'text';
inputAttr.value = 'New Value';

var input = $('<input/>').attr(inputAttr);

如果您想通过键间接访问它们,则类似于字典:

var inputAttr = {};
inputAttr["type"] = 'text';
inputAttr["value"] = 'New Value';

小提琴让我迟到了36秒 :) - Regent
1
@Regent:这么基础的东西不应该需要Fiddle :) - iCollect.it Ltd
抱歉,打错了,不需要(从您的原始文本中复制并粘贴) :) - iCollect.it Ltd
是的,你也可以通过object["keyname"]语法来访问。如果名称存储在字符串变量中,这将非常方便。 - iCollect.it Ltd
我也可以这样检索... alert(inputAttr.type) - VIDesignz
显示剩余3条评论

8

可以通过以下方式设置对象的键值:

var inputAttr = {};
inputAttr.type = 'text';
inputAttr.value = 'New Value';

Fiddle.


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接