0

我很想做这样的事情:

this.slides = {$('#Page_1') : null,
               $('#Page_2') : null,
               $('#Page_3') : null};

我为什么要这样做,或者我有什么好处?
我不想在整个班级中使用 jquery 选择器。


一个办法:

this.slides = [{"key": $('#Page_1'), "value": null},
               {"key": $('#Page_2'), "value": null},
               {"key": $('#Page_3'), "value": null}];

局限性:

这种方法的问题在于,每次想要接近它时,都必须遍历整个对象。您应该使用 id 作为标识符,这样效率更高。——克里斯托夫

4

4 回答 4

3

不,键必须是文字。您可以使用对象的属性。

于 2012-10-16T16:51:52.990 回答
2

如果您的处理基于 this.slides 内容,为什么不使用 id 作为 key ?因为它们也意味着是“唯一的”,否则你会破坏 DOM。所以我建议像

this.slides = {'#Page_1':null,'#Page_2':null,'#Page_3':null};

并对您对 this.slides 的处理进行了非常轻微的修改

于 2012-10-16T16:55:25.803 回答
1

你为什么不尝试这样的结构:

this.slides = [{"key": $('#Page_1'), "value": null},
               etc.];

或者这是否打破了您对使用对象的需求?

当然,在迭代它时,您必须使用如下逻辑:

for (var i = 0; i < this.slides.length; i++) {
    var key = this.slides[i].key;
    var value = this.slides[i].value;
}
于 2012-10-16T16:51:39.700 回答
1

您不能将对象用作键,只能使用普通文字。我建议这样的结构:

this.slides = { 'Page_1' : $('#Page_1'),
                'Page_2' : $('#Page_2')
                'Page_3' : $('#Page_3')};

这样,您可以使用id元素的 轻松访问相应的 jQuery-Object。(您可以省略键的引号。)

slides.Page_1
// or
slides['Page_1']

现在为您提供相应的 jQuery 对象。

于 2012-10-16T17:11:18.500 回答