2017-07-26 59 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