2012-10-02 13 views
0

這是我有的代碼,它不工作。我不知道如何聲明這個我該如何申報並在稍後設定數值? (javascript)

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是不確定的。有人能讓我知道正確的方式來宣佈空的幻燈片嗎?

回答

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 
+0

的理解,我並沒有意識到,這是沒有初始化,謝謝 – Huangism

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; 
    } 
} 
+0

這個工程,以及,我給它上面,因爲他是30秒更快,我翻閱你的答案,因爲它完美的作品以及 – Huangism