如何从数组中创建jQuery对象?

时间:2011-09-27 17:07:19

标签: javascript jquery arrays object namespaces

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()涉及到了。我正在保护导航选择器,以便添加/删除页面,我们只是更新数组。我们可以从nav节点构建数组,但不管怎样,我们仍然需要能够创建这些命名空间的选择器......

3 个答案:

答案 0 :(得分:4)

您必须使用括号表示法:

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">]; 

答案 1 :(得分:2)

我不确定你想要完成什么,但是

name.space[el] = $('#' + selector);

可能有用。

也可以使用括号表示法访问对象属性。这意味着obj.xyobj['xy']相同,但后者更灵活,可以在像您这样的情况下使用。

答案 2 :(得分:0)

var anArray = ['thing1','thing2','thing3'];
var name    = {space:new Array()};

$.each(anArray, function (i,el) {
   var selector = 'node-' + el;
   name.space[el] = $('#' + selector);
});