2015-03-13 70 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