0

这是我拥有的代码,但它不起作用。我不知道如何声明

    var input = {
        container: '.slide_container',
        container_all: '.slide_show',
        slides: []
    };

    var $slides = $('.slide_show .slide');
    var l = $slides.length;

    for( var i = 0; i < l; i++ ) {
        input.slides[i].el = '#' + $slides.eq(i).attr('id');
        if( i === 0 ) {
            input.slides[i].weight = 1;
        } else {
            input.slides[i].weight = 0;
        }
    }

当它到达

input.slides[i].el = '#' + $slides.eq(i).attr('id');

它说 input.slides[i].el 是未定义的。有人可以让我知道声明空幻灯片的正确方法吗?

4

2 回答 2

1

input.slides[i]您应该在将某些内容分配给其属性之前进行初始化。

for( var i = 0; i < l; i++ ) {
    input.slides[i] = {};
    input.slides[i].el = '#' + $slides.eq(i).attr('id');
    if( i === 0 ) {
        input.slides[i].weight = 1;
    } else {
        input.slides[i].weight = 0;
    }
}
于 2012-10-02T16:41:43.323 回答
1

您需要先创建对象。就像是:

input.slides[i] = { el: '#' + $slides.eq(i).attr('id'), weight: 0 };

您可能还想考虑使用push来添加到您的阵列中。

input.slides.push({ el: '#' + $slides.eq(i).attr('id'), weight: 0 }); //Add new object to the array
于 2012-10-02T16:42:29.390 回答