如果子div中存在某个类,则我正在向父div添加一个类。但同时,如果子div中没有该类,则要从父div中删除该类。
我使用了下面的代码,添加了类,但是当子div中不存在该类时,它不会从父类中删除该类:
jQuery(function($){
if(jQuery(".mtsnb-top").hasClass('mtsnb-shown')) {
jQuery("body").addClass('test');
} else if (jQuery(".mtsnb-top").hasClass('mtsnb-hidden')) {
jQuery("body").removeClass('test');
}
});
不确定这是什么问题。
我还添加了toggleclass方法。
jQuery(function($){
if(jQuery(".mtsnb-top").hasClass('mtsnb-shown')) {
jQuery("body").toggleClass('test');
}
});
但这也不符合我的要求。
我希望,如果子div中存在类 mtsnb-top ,则父div应当具有类 test ,如果类 mtsnb-top ,然后要从父div中删除的类 test 。
有人可以指出以上代码在哪里错误吗?
作为参考,this is页面的网址,我指的是顶部的通知栏。如果栏显示,想向body标签添加一个类。如果那是隐藏的,则该类将从体内删除。
答案 0 :(得分:0)
您可以通过将if/else
方法与第二个参数一起使用来消除toggleClass
语句,如果第二个参数为true,则添加该类,否则删除该类:
var childHasShownClass = jQuery('.mtsnb-top').hasClass('mtsnb-shown');
jQuery('body').toggleClass('test', childHasShownClass);
当然,这意味着body
元素将具有test
类,如果子元素具有mtsnb-shown
类,否则就不会(即使mtsnb-hidden
也不存在)在孩子身上)。
我看到的唯一其他潜在问题是,第一个代码示例中的toggleCLass
应该是toggleClass
。小写的l
而不是L
,除非那只是一个错字,并且您的实际代码是正确的。
答案 1 :(得分:0)
找到具有“ mtsnb-top”类的子元素的数量,然后添加/删除“ test”类。
if(jQuery('.parent').find('.mtsnb-top').length) {
jQuery('.parent').addClass('test');
} else {
jQuery('.parent').removeClass('test');
}