我正在尝试执行以下操作:
$('.myEm').closest('.area').hasClass('medium').toggleClass('large-4 large-12');
但是我一直在说错误.hasClass不是一个函数。我错过了什么?
答案 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