2015-03-13 40 views
1

當我正在寫一個onclick偵聽一按鈕,但接收jQuery的 - 類型錯誤:搜索數組

Uncaught TypeError: undefined is not a function error on line 4 of this code:

$("button#searchKeyword").click(function(){ 
    var searchTerm = $("input#searchBox").val(); 
    var i = myArr.indexOf(searchTerm)+1; 
    var locationID = myArr[i].value(); 
    alert(searchTerm + " " + i + " " + locationID); 
}); 

locationID是一個4位或5位整數未定義是不是一個函數。而myArr是一串字符串和數字(​​即[string, number, string, number...])。

我試過在閱讀this後試過添加var $ = jQuery.noConflict();。但是,這些解決方案似乎都不適合我。

我想知道如果問題是一個解析問題?我是否需要將i解析爲integer?如果是的話,我會怎麼做?

+0

哪一行給出了錯誤,什麼是'myArr [i] .value()'?你的數組元素是否有一個名爲'value'的方法? – user0815 2015-03-13 17:50:14

+0

第四行 - (「此代碼第4行的錯誤」)。 'myArr [i] .value()'應該是'locationID'。我不確定你的其他問題是什麼意思。 – DinosaurHunter 2015-03-13 17:59:38

+0

我的意思是與以下回答相同。本地對象(如數組包含的字符串和數字)沒有方法'value()'。但是你在這些本地元素上調用這個方法。 – user0815 2015-03-13 18:02:28

回答

1

如果myArr是一個字符串和數字的數組,那麼當您撥打myArr[i].value()時會出錯,因爲沒有爲數字或字符串定義value

您可能還會遇到i超出數組界限的問題,因爲您將數字加1。 (這不應該導致這個錯誤消息,但它值得注意)

+0

那麼我怎麼能夠在索引'[i]'處獲得價值? – DinosaurHunter 2015-03-13 18:05:01

+1

只要做'myArr [i]'如果你想將字符串轉換爲一個整數,那麼'parseInt(myArr [i])' – 2015-03-13 18:06:28

+1

啊對,謝謝!這回答了我的問題。沒有意識到它會那麼簡單。 – DinosaurHunter 2015-03-13 18:09:27