Я нахожусь в процессе добавления класса в родительский 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 должен быть тест класса, а если в дочернем div отсутствует класс mtsnb-top , то тест класса должен быть удален из родительское отделение

Может кто-нибудь указать, где приведенный выше код неверен?

Для справки это URL страницы, а я имею в виду верхнюю панель уведомлений. Хотите добавить класс в тег body, если отображается панель. Если это скрыто, то этот класс должен быть удален из тела.

Вы можете исключить операторы if/else , используя метод toggleClass со вторым параметром, который добавляет класс, если второй параметр имеет значение true, в противном случае класс удаляется:

 var childHasShownClass = jQuery('.mtsnb-top').hasClass('mtsnb-shown'); jQuery('body').toggleClass('test', childHasShownClass); 

Конечно, это означает, что элемент body будет иметь test класс, если у дочернего элемента есть класс mtsnb-shown , в противном случае — нет (даже если mtsnb-hidden также отсутствует у дочернего mtsnb-hidden ).

Единственная другая потенциальная проблема, которую я вижу, состоит в том, что toggleCLass в вашем первом примере кода должен быть toggleClass . Строчные l вместо L , если только это не опечатка и ваш правильный код верен.

Найдите количество дочерних элементов, имеющих класс ‘mtsnb-top’, затем добавьте / удалите класс ‘test’.

 if(jQuery('.parent').find('.mtsnb-top').length) { jQuery('.parent').addClass('test'); } else { jQuery('.parent').removeClass('test'); }