是否可以将jQuery元素对象用作数组/对象键?
示例:
var el = jQuery(this);
var test = {};
test[el] = "something strange";
做一个:
jQuery.each(test, function(k,v){
console.log(k);
});
只报告[object Object]
有没有说我可以重新使用k
作为原始jQuery元素对象?
答案 0 :(得分:7)
不,这是不可能的。
ECMAscript仅允许strings
作为对象的键值。
您可以做的是改为使用单个节点中的id value
。所以它可能看起来像
var el = jQuery(this);
var test = {};
test[this.id] = "something strange";
当然要求节点具有id值。
答案 1 :(得分:0)
使用$.each([],function(i,v)){}
时,i是索引,v是值。
答案 2 :(得分:0)
当您尝试将对象指定为数组键时,您会看到对象已转换为字符串('[object Object]'
)。对于简单的哈希,您可以将它们序列化为一个键:
var obj = { foo: 'bar' },
key = JSON.stringify(obj),
obj2 = { key: 'something strange' };
但一般来说,你会想避免这种事情。您可以使用包含对象和消息的并行数组:
var keys = [ {foo: 'bar'}],
values = [ 'something strange' ];
答案 3 :(得分:-1)
我认为你需要定义一个对象,然后推送到数组。
var obj = {};
obj[foo] = 'bar';
ary.push(obj);