【问题标题】:Simple jQuery .size() and .length() 'not a function' error [duplicate]简单的 jQuery .size() 和 .length()“不是函数”错误 [重复]
【发布时间】:2018-09-05 20:51:07
【问题描述】:

我收到此错误:

TypeError: $(this).find('.btn-default').size is not a function. (In '$(this).find('.btn-default').size()', '$(this).find('.btn-default').size' is undefined)

由于这段代码:

console.log($(this).find('.btn-default').size());

如果我改用.length(),我会得到同样的错误。我正在使用 jQuery 3.3.1。 This working example 使用 jQuery 3.1.1 和 size()。我确定我在做一些非常简单但错误的事情,但我找不到问题。

编辑:再一次,问题是我的视力不好。答案是:length 是一个属性,而不是一个函数。

谁知道为什么codeply 示例声称使用的是 jQuery 3.1.1。使用size(),但显然这是不可能的,根据下面的 cmets。

【问题讨论】:

  • size() 自 jQuery v1.8 起已弃用,length 不接受参数,所以它只是.length。见size()length
  • 您的示例使用的是 jQuery 1.9.1,而不是您声称的 3.3.1
  • 你到底为什么要使用 .size() 和 .length()?
  • console.log($(this).find('.btn').length); 以同样的方式失败。
  • 在急于回复您所有的 cmets 时,我误读了控制台错误消息:.length 并没有失败,而是后来对我实验剩余的 .length() 的调用失败了。下面的答案是正确的。我需要使用属性,而不是函数。

标签: javascript jquery


【解决方案1】:

尺寸自 1.8 起已弃用,并在 3.0 中删除,请参阅此处size()

改用$(this).find('.btn-default').length(属性不是功能)

【讨论】:

  • “属性不起作用”是关键。我误读了文档,然后在控制台上进一步误读了我的调试输出,结果被误导了。
  • @CXJ 很高兴你解决了你的问题 :)
猜你喜欢
  • 2010-10-28
  • 2011-09-24
  • 2011-09-26
  • 2018-02-16
  • 2016-01-21
  • 1970-01-01
  • 1970-01-01
  • 2019-06-22
  • 2020-07-29
相关资源
最近更新 更多