我如何声明这个并稍后设置值? (JavaScript的)

时间:2012-10-02 16:38:42

标签: javascript jquery

这是我的代码,它不起作用。我不知道怎么声明这个

    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未定义。有人能让我知道申报空幻灯片的正确方法吗?

2 个答案:

答案 0 :(得分: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;
    }
}

答案 1 :(得分: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