如何从数组中创建 jQuery 对象?
Posted
技术标签:
【中文标题】如何从数组中创建 jQuery 对象?【英文标题】:How to make jQuery objects from an array? 【发布时间】:2011-11-26 05:51:27 【问题描述】:anArray = ['thing1','thing2','thing3'];
$.each(anArray, function (i,el)
var object = 'name.space.' + el;
var selector = 'node-' + el;
var object = $('#' + selector);//need object here to be interpreted as it's value
//as if: var name.space.thing1 = $('#' + selector);
);
这些都是可用的 jQuery 对象:
console.log(name.space.thing1);
console.log(name.space.thing2);
console.log(name.space.thing3);
我觉得 eval() 参与其中。我正在为导航选择器补充水分,以便在添加/删除页面时,我们只需更新数组。我们可以从导航节点构建数组,但无论哪种方式,我们仍然需要能够制作这些命名空间选择器...
【问题讨论】:
你想完成什么?必须有更好的方法。 数字在 javascript 变量名的开头无效。所以你的格式不起作用。 我想要缓存 DOM 中导航节点的 jQuery 对象。更喜欢将这些对象的创建绑定到遍历数组或导航节点本身。 【参考方案1】:你必须使用括号表示法:
var array = ['thing1', 'thing2'];
var object = ;
object.space = ;
$.each(array, function ()
object.space[this] = $('#node-' + this);
);
console.log(object.space.thing1); // [<div id="node-1">];
【讨论】:
感觉这样和答案 bazmegakapa [给] 是一样的。无论哪种方式,我都无法选择答案。我选择哪个?让人们投票更多? 随意投票给任何一个,我想习惯上选择最旧的答案。不过没关系,两个都投。马克一回答。世界还在继续:) 是的,我猜这两种方式都不用担心:)。 感谢各位的帮助!我无法投票,因为我还没有足够的代表。我知道我知道。我在现实世界中并没有迟到,我来了。【参考方案2】:我不确定你想要完成什么,但是
name.space[el] = $('#' + selector);
可能会起作用。
对象属性也始终可以使用括号表示法访问。这意味着obj.xy
和obj['xy']
是一样的,但是后者更灵活,可以用在像你这样的情况。
【讨论】:
这似乎有效。不过,我不清楚 name.space[el] 以后如何作为 name.space.thing1 引用。那是哪里。来自(哪里?那是 [] 的一部分吗? @folktrash -name.space["thing1"]
相当于 JavaScript 中的 name.space.thing1
。从el === "thing1"
开始,然后是name.space[el] === name.space["thing1"] === name.space.thing1
。【参考方案3】:
var anArray = ['thing1','thing2','thing3'];
var name = space:new Array();
$.each(anArray, function (i,el)
var selector = 'node-' + el;
name.space[el] = $('#' + selector);
);
【讨论】:
以上是关于如何从数组中创建 jQuery 对象?的主要内容,如果未能解决你的问题,请参考以下文章