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 に答える