jQuery addClass()仅半添加类

时间:2019-04-08 08:53:37

标签: jquery

我需要使用jQuery的addClass方法添加一个类。在我的所有其他代码中都可以正常工作,但是在这个特定的代码上,它在元素中添加了“类”一词,但没有添加实际的类。

所以-在我单击hamburgermenu按钮之前,它看起来像是:<body>,当我单击hamburgermenu按钮时,我的html看起来是这样的:<body class>但我希望它看起来像{ {1}}。每次我单击该按钮时,我也可以在浏览器的开发人员工具中看到它闪烁,因此正在发生某些事情,但不是我想要的。

我在另一个函数中使用了这行确切的代码(请参阅提供的最后一个),并且工作正常。

以前我在body-element上有一个removeClass,但是我已经删除了所有这些,但它仍然不起作用。

该功能不起作用:

<body class="no-scroll">

起作用的功能:

    $('.hamburgermenu-button').click(function() {
        $('.main-navigation').toggleClass('d-xs-none');    
        $('.hamburgermenu-button').toggleClass('collapsed'); 
        $('.main-menu-container').addClass('sticky nav-show');
        $('#search-extended').slideUp(200);
        $("#search-icon").removeClass("show");   
        $('body').addClass('no-scroll');
    });

由于人们似乎专注于错误的事情,因此我在此问题中更新了代码。

1 个答案:

答案 0 :(得分:-1)

根据我对您的理解,您正在寻找一个不是标头元素的主体元素。

但并非如此:http://api.jquery.com/not/

<ul>
  <li>list item 1</li>
  <li>list item 2</li>
  <li>list item 3</li>
  <li>list item 4</li>
  <li>list item 5</li>
</ul>

$( "li" ).not( ":even" ).css( "background-color", "red" );

在此示例中,它将搜索每个奇怪的li元素。

我建议您使用children()或find()元素,并排除标头元素。