作者:多米音乐_35780104 | 来源:互联网 | 2023-01-13 15:24
我真的很难看到如何做到这一点.我想检查一个类是否存在于元素的一个父元素中的某个地方.我不想使用任何库,只需使用vanillaJS.在下面的示例中,如果有问题的元素位于元素的子节点中
我真的很难看到如何做到这一点.我想检查一个类是否存在于元素的一个父元素中的某个地方.
我不想使用任何库,只需使用vanilla JS.
在下面的示例中,如果有问题的元素位于元素的子节点中,并且“the-class”作为类名,则它应返回true.
我认为jQuery会是这样的:
if( $('#the-element').parents().hasClass('the-class') ) {
return true;
}
所以这返回true:
这样做:
…但是这会返回false:
解决方法:
你必须递归地做:
// returns true if the element or one of its parents has the class classname
function hasSomeParentTheClass(element, classname) {
if (element.className.split(' ').indexOf(classname)>=0) return true;
return element.parentNode && hasSomeParentTheClass(element.parentNode, classname);
}
Demonstration(打开控制台看真的)