Я хочу добавить класс .my-class в тело, если класс .views-exposed-form присутствует в #navbar-collapse-second
Код ниже не работает. Как исправить?
(function ($) {
$('#navbar-collapse-second').hasClass('views-exposed-form' {
$('body').addClass('my-class');
});
})(window.jQuery);
введите описание изображения здесь
ОБНОВИТЬ
Я применил ответ объяснять.
Класс удаляется из #navbar-collapse-second, когда .views-exposed-form доступен.
Но невозможно применить то же правило в #navbar-collapse-first, когда .views-manage-menu доступен.
Идея ?
(function ($) {
if ($("#navbar-collapse-first .views-manage-menu").length) {
$(".icon-navbar-first-alert").removeClass("icon-navbar-first-alert-disable");
};
if ($("#navbar-collapse-second .views-exposed-form").length) {
$(".icon-navbar-second-alert").removeClass("icon-navbar-second-alert-disable");
};
})(window.jQuery);
Первое меню:
<a class = "navbar-toggle-first collapsed" data-toggle = "collapse" data-target = "#navbar-collapse-first" aria-expanded = "false">
<div class = "icon-navbar-first">
<span class = "fa-layers fa-3x">
<i class = "far fa-circle"></i>
<span class = "navbar-icon-open">
<i class = "fas fa-bars" data-fa-transform = "shrink-8"></i>
</span>
<span class = "navbar-icon-close">
<i class = "fas fa-times" data-fa-transform = "shrink-8"></i>
</span>
</span>
</div>
<div class = "icon-navbar-first-alert icon-navbar-first-alert-disable">
<span class = "fa-stack fa-lg">
<i class = "fas fa-circle fa-stack-2x"></i>
<span class = "navbar-icon-open">
<i class = "fas fa-bars fa-stack-1x fa-inverse"></i>
</span>
<span class = "navbar-icon-close">
<i class = "fas fa-times fa-stack-1x fa-inverse"></i>
</span>
</span>
</div>
</a>
</div>
Второе меню:
<div{{ attributes }}>
<a class = "navbar-toggle-second collapsed" data-toggle = "collapse" data-target = "#navbar-collapse-second" aria-expanded = "false">
<div class = "icon-navbar-second">
<span class = "fa-layers fa-3x">
<i class = "far fa-circle"></i>
<span class = "navbar-icon-open">
<i class = "fas fa-filter" data-fa-transform = "shrink-9"></i>
</span>
<span class = "navbar-icon-close">
<i class = "fas fa-times" data-fa-transform = "shrink-8"></i>
</span>
</span>
</div>
<div class = "icon-navbar-second-alert icon-navbar-second-alert-disable">
<span class = "fa-stack fa-lg">
<i class = "fas fa-circle fa-stack-2x"></i>
<span class = "navbar-icon-open">
<i class = "fas fa-filter fa-stack-1x fa-inverse"></i>
</span>
<span class = "navbar-icon-close">
<i class = "fas fa-times fa-stack-1x fa-inverse"></i>
</span>
</span>
</div>
</a>
</div>
@Vitalii hasClass(className) принимает только один параметр.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


В вашем коде нет условий. Попробуйте следующее:
if ($('#navbar-collapse-second').hasClass('views-exposed-form')){
$('body').addClass('my-class');
}
@ drup8, создайте скрипку проблемы.
Опубликованный вами код даже не запустится, синтаксис недействителен, а hasClass(className) принимает только один параметр, поэтому не совсем уверен, что вы пытаетесь там сделать.
hasClass(className) возвращает истину, если элемент, который вы вызываете, имеет этот класс, он будет возвращать нет true, если у дочернего элемента есть класс, что, я считаю, именно то, что вы пытаетесь сделать здесь.
Предполагая, что ваш HTML имеет такую грубую структуру:
<body>
<div id = "navbar-collapse-second">
<div class = "views-exposed-form">
</div>
</div>
</body>
Следующий код должен работать:
if ($("#navbar-collapse-second .views-exposed-form").length) {
$("body").addClass("my-class");
}
Объяснение:
$("#navbar-collapse-second .views-exposed-form") выберет элемент с классом views-exposed-form, который является потомком элемента с идентификатором navbar-collapse-second.
Если элемент был найден (.length> 0), мы добавляем класс к элементу body:
$("body").addClass("my-class");
Спасибо, это работает. Я добавил скриншот к своему вопросу. Я сказал body, чтобы упростить свой вопрос, на самом деле .my-class нужно добавить в .icon-navbar-alert-disable, возможно ли это? вот соответствующая страница s1biose.com/article (правое меню).
Да вместо $("body").addClass("my-class"); вобще $(".icon-navbar-alert-disable").addClass("my-class");
Разве нельзя добавить кому? .hasClass ('просмотры-открытая-форма', {