jQuery addClass()仅用于半添加类

jQuery addClass()仅用于半添加类,jquery,Jquery,我需要使用jQuerysAddClass方法添加一个类。它在我的所有其他代码中都可以正常工作,但在这个特定代码中,它向元素添加了单词“class”,但没有添加实际的类 所以-在我点击汉堡菜单按钮之前,它看起来是这样的:,当我点击汉堡菜单按钮时,我的html看起来是这样的:,但我希望它看起来像。我还可以在浏览器中的开发者工具中看到它在每次单击按钮时闪烁,因此发生了一些事情,但不是我想要的 我在另一个函数中使用了这一行代码(请参阅最后一个函数),它运行良好 早些时候我在body元素上有一个remov

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

所以-在我点击汉堡菜单按钮之前,它看起来是这样的:
,当我点击汉堡菜单按钮时,我的html看起来是这样的:
,但我希望它看起来像
。我还可以在浏览器中的开发者工具中看到它在每次单击按钮时闪烁,因此发生了一些事情,但不是我想要的

我在另一个函数中使用了这一行代码(请参阅最后一个函数),它运行良好

早些时候我在body元素上有一个removeClass,但是我已经删除了所有这些,它仍然不起作用

不起作用的函数:

    $('.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');
    });
其工作的功能:

headerSearchVisibility: function(visible) {
    'use strict';

    if(visible) {
        $('#headerSearch').css('z-index',2);
        $('#headerSearchResults').slideDown(200);
        $('#overlay').show();
        if((window).matchMedia("(max-width: 767.98px)").matches) {
            $('body').addClass('no-scroll');
        }
    } else {
        $('#headerSearchResults').slideUp(200);
        $('#overlay').fadeOut(200);
    }
},

在这个问题中,我更新了我的代码,因为人们似乎把注意力放在了错误的事情上。

根据我对您的理解,例如,您正在寻找一个不是标题元素的body元素

但不是这样的:

  • 清单项目1
  • 清单项目2
  • 清单项目3
  • 清单项目4
  • 清单项目5
$(“li”)。非(“:偶数”)。css(“背景色”、“红色”);
在本例中,它将搜索每个奇数li元素


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

$('body')。not('header')
没有意义,因为
元素不能是
元素。你的意思是
.not('.header')
(即没有
.header
类的body)?不,在这个代码中,header元素位于body内部,我希望它应用于除此之外的所有内容。但是我尝试过删除
.not('header')
,但都不起作用。您可以尝试“body:not(header)”这是一个css选择器
$('body*:not('header'))。addClass('no-scroll')
,但你为什么要这样做呢?我的标题中有折叠的东西,我需要滚动。但是我不希望站点的其余部分(背景)在折叠时滚动,这就是为什么我希望将类应用于除标题以外的所有内容(正文)。否。你抓住了一段奇怪的代码,而不是真正的问题。OP明确表示问题与评论中的header元素无关。是的,非常清楚。谢谢你的耐心和宽容昆汀。
<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" );