正如@Phil已经明确指出的,第一个参数是
我正在尝试遍历div的子级,并找出哪个具有is-active
类:
$('.childrenContainerSelector').children().each(child => console.log(child.hasClass('is-active'));
但是当我运行代码时,我得到了hasClass() is not a function
错误。
如果我只运行:
$('.childrenContainerSelector').children()
作为输出,我确实得到了正确的子项。
检查.each()
的文档
回调函数的参数是(Integer index, Element element)
,因此您尝试在int
上调用hasClass()
。
请注意,第二个arg是Element
,而不是jQuery
,所以如果您想使用jQuery方法,您需要将其包装为
$('.childrenContainerSelector').children().each((i, child) =>
console.log($(child).hasClass('is-active'))
或者,使用内置的classList
方法
child.classList.contains("is-active")
如果你刚刚在学习is-active
课程的孩子,为什么不使用
const activeChildren = $(".childrenContainerSelector > .is-active")
index
。还要记住,.hasClass()
是一个jQuery方法;它应用于jQuery集合,而不是DOM元素。因此,您可以使用$(this).hasClass()
或$(child).hasClass()
,其中child
是第二个元素。
要让所有孩子都上.is-active
课,请使用:
$('.childrenContainerSelector > .is-active').each((i,child) => {
//your code
console.log( $(child).hasClass('is-active'); //You know it already has .. OR
console.log( %(this).hasClass('is-active');
});
或者:
$('.childrenContainerSelector').children().filter('.is-active').each((i,child) => {
//your code
});