如何用JS向body添加一个类?

时间:2018-05-03 15:17:39

标签: javascript twitter-bootstrap

如果.my-class

中存在类.views-exposed-form,我想将类#navbar-collapse-second添加到正文中

以下代码不起作用。怎么纠正?

(function ($) {

      $('#navbar-collapse-second').hasClass('views-exposed-form' {
           $('body').addClass('my-class');
      });

})(window.jQuery);

enter image description here

更新

我应用了 explv 的响应。

#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>

第二个菜单:

sub drop_first_last (@grades) {
    return avg(@grades[1..*-2])
}

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:0)

您的代码中没有任何条件。请尝试以下方法:

if($('#navbar-collapse-second').hasClass('views-exposed-form')){
   $('body').addClass('my-class');
}

答案 1 :(得分:0)

您发布的代码甚至不会运行,语法无效,hasClass(className)只接受一个参数,所以不完全确定您要在那里做什么。

hasClass(className)如果您调用它的元素具有该类,则返回true,如果子元素具有该类,则将返回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的元素,该元素是ID为navbar-collapse-second

的元素的子元素

如果找到了一个元素(.length是&gt; 0),那么我们将该类添加到body元素中:

$("body").addClass("my-class");