2017-07-26 22 views
1

我是JavaScript編程新手。我正在嘗試瀏覽書籍列表,並將書籍的標題分配給數組,以便使用jQuery將其綁定到自動完成文本框。以下是我的代碼 -在Jade和Javascript中循環列表

block content 

    script. 
    $(function() { 

     var availableTags = []; 

     for (i=0; i < #{books.length}; i++) { 
     availableTags[i] = #{books[i].title}; 
     } 

     $("#tags").autocomplete({ 
     source: availableTags 
     }); 
    }); 

    div.ui-widget 
    label(for="tags") Tags: 
    input(id="tags") 

我的問題是與線 -

availableTags[i] = #{books[i].title}; 

如果我使用一個常量,例如 -

availableTags[i] = #{books[0].title}; 

能正常工作。但是如果使用變量i,則會出現錯誤「無法讀取未定義的屬性標題」。

我在做什麼錯?

+0

有沒有可能沒有定義鍵0?書籍的內容是什麼? – Salketer

+0

不相關,但你應該聲明你的'我',即'爲(讓我= 0; ...'。 –

+0

在哪裏定義書籍? –

回答

-1

如果#{books[0].title}罰款檢查#{books.length}。有可能你的長度比真實數組要高。

+0

books.length給了我正確的結果。爲了確保我不會精神失常,我將其改爲常量(我<5),並且我知道我有超過5條記錄返回。我仍然得到這個錯誤。 – peejay

+0

「我」價值如何?按照Ulysse BN建議 – blewherself

+0

嘗試將for循環重寫爲'for(let i = 0; i <5; i ++)'試試你的建議。相同的結果/錯誤。 :( – peejay