【问题标题】:jQuery - TypeError: undefined is not a function when searching arrayjQuery - TypeError:搜索数组时未定义不是函数
【发布时间】:2015-03-14 01:57:35
【问题描述】:

我正在为一个按钮编写一个onclick 监听器,但接收到一个

Uncaught TypeError: undefined is not a function error on line 4 此代码:

$("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?如果是这样,我该怎么做?

【问题讨论】:

  • 哪一行给出了错误,myArr[i].value() 是什么?您的数组元素是否有一个名为 value 的方法?
  • 第四行 - (“此代码第 4 行错误”)。 myArr[i].value() 应该是 locationID。我不确定你的另一个问题是什么意思。
  • 我的意思和下面的回答一样。数组包含的字符串和数字等原生对象没有方法value()。但是你在这些原生元素上调用这个方法。

标签: jquery typeerror


【解决方案1】:

如果myArr 是字符串和数字的数组,那么在调用myArr[i].value() 时会出现错误,因为value 没有为数字或字符串定义。

您可能还会遇到i 超出数组边界的问题,因为您向它添加了 1。 (这不应该导致此错误消息,但值得注意)

【讨论】:

  • 那么我该如何获取索引[i] 的值?
  • 只要做myArr[i]如果你想把字符串转换成整数,那就做parseInt(myArr[i])
  • 嗯,好的,谢谢!这回答了我的问题。没想到会这么简单。
猜你喜欢
  • 2015-08-07
  • 1970-01-01
  • 2012-10-23
  • 2016-01-14
  • 2015-08-04
  • 2014-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多