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节点构建数组,但不管怎样,我们仍然需要能够创建这些命名空间的选择器......
答案 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.xy
与obj['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);
});