.hasClass()不是函数?

时间:2017-02-22 20:36:45

标签: jquery

我正在尝试执行以下操作:

$('.myEm').closest('.area').hasClass('medium').toggleClass('large-4 large-12');

但是我一直在说错误.hasClass不是一个函数。我错过了什么?

1 个答案:

答案 0 :(得分:7)

你不能在.hasClass() method之后链接其他方法。

.hasClass() method根据jQuery选择器是否具有特定类返回布尔值。看起来你正在寻找.has() method,它将根据是否有一个与选择器匹配的特定后代元素来过滤元素集合:

$('.myEm').closest('.area').has('.medium').toggleClass('large-4 large-12');

...或者您也可以使用:has() selector

$('.myEm').closest('.area:has(.medium)').toggleClass('large-4 large-12');

您可以链接大多数其他jQuery方法的原因是因为它们返回jQuery object。如果您检查任何jQuery方法或选择器上的文档,您可以确定返回类型(这将指示您之后是否可以链接其他方法)。如上所述,.hasClass()方法没有返回jQuery对象,它返回true / false,这就是为什么你看到以下错误声明它不是功能:

  

未被捕捉TypeError: $(...).closest(...).hasClass(...).toggleClass is not a function