使用jQuery元素对象作为数组键
Use jQuery element object as array key?
是否可以将jQuery元素对象用作数组/对象键?
示例:
var el = jQuery(this);
var test = {};
test[el] = "something strange";
做一个:
jQuery.each(test, function(k,v){
console.log(k);
});
只报告[对象对象]
有没有人说我实际上可以重用k
作为原始的jQuery元素对象?
不,这是不可能的。
ECMAscript只允许strings
作为对象的键值。
相反,您可以使用来自单个节点的id value
。所以它可能看起来像
var el = jQuery(this);
var test = {};
test[this.id] = "something strange";
当然,这需要节点具有一个id值。
使用$.each([],function(i,v)){}
时,i是索引,v是值。
当您尝试将对象分配为数组键时,就会看到该对象转换为字符串('[object Object]'
)。对于简单的散列,可以设想将它们序列化为一个密钥:
var obj = { foo: 'bar' },
key = JSON.stringify(obj),
obj2 = { key: 'something strange' };
不过,一般来说,你会想避免这种事情。您可以使用包含对象和消息的并行数组,而不是:
var keys = [ {foo: 'bar'}],
values = [ 'something strange' ];
我认为您需要定义一个对象,然后推送到数组。
var obj = {};
obj[foo] = 'bar';
ary.push(obj);
相关文章:
- 将数组对象传递到struts2中的操作类
- 如何使用jquery返回php-json数组对象
- 从其名称获取javascript数组对象
- 值未与数组对象绑定
- 如何按数组/对象值的倍数过滤对象数组
- 在表中显示数组对象
- 在数组对象中分组
- 将第二个或多个数组推送到数组对象 AngularJS 中
- 重新排列 JavaScript 数组/对象
- 键上的javascript数组对象过滤器
- handontable:在不更改数据数组/对象的情况下隐藏某些列
- 用于跟踪购物车可用性的Javascript数组/对象/哈希表
- 重建有角度的java脚本数组对象
- 对JSON数组对象进行排序
- 连接与数组对象相关的文本:方式和位置
- 哪些浏览器和版本支持将常见的类数组对象直接传递到fn.apply()
- 如何使用Handlebars循环数组对象和模板
- 是否可以引用JS数组/对象中的另一个元素
- Javascript中的名称索引-数组/对象
- 数组长度不等于数组对象