当前位置: 首页 > 知识库问答 >
问题:

如果section有活动类,那么将其id作为类添加到body?

鲁华皓
2023-03-14

如果你能帮我解决这件事,我将不胜感激。我试图创建一个函数:“如果任何节具有class”active“=>取此节的id然后将其添加到body作为class元素,否则删除”

这是下面的代码,但它不能正常工作,或者当我滚动到下一节时,新类没有被添加,而以前的类被删除。

<body class="">
    <section id="home" class="active">
    </section>

    <section id="about" class="">
    </section>
</body>

if ($('section').hasClass('active')) {
    var dataSection = $('section').attr('id');
    $body.addClass(dataSection.replace('#', '') + '-active');   
} else {
    $body.removeClass('home-active');
}

共有2个答案

鲁景山
2023-03-14

当您使用始终返回第一节的ID$('section').attr('id')时,您需要在section的内部使用this

$('section').attr('id');

应该是:

$(this).attr('id');

因此它将获得当前节的id,也不需要替换,两行可以合并为:

$body.addClass($(this).attr('id') + '-active');

注意:只要使用选择器,就可以获得活动部分:

$('section.active')

希望这有帮助。

苏嘉志
2023-03-14

请尝试在此处使用this

if( $(something).hasClass("active") ){
    var grabId = $(this).attr("id");
    $("body").attr("id", grabId);
}
 类似资料:
  • 我有一个活动选项卡的自动播放选项卡类current,这意味着当该选项卡活动时, 有一个名为current的类。现在我要向第一个子 添加不同的类 null null

  • 问题内容: 有没有办法在翡翠模板中内联? 想要执行此条件检查“内联”,如果fromEdit存在,则结果会将.in添加到div的末尾。 问题答案: 这有效: 在这里尝试。

  • 问题内容: 我正在尝试在MVC中向我的引导导航栏添加“活动”类,但是在编写时,以下内容未显示活动类: 这可以解决看起来像格式正确的类,但是不起作用: 在Bootstrap文档中,它指出不应在导航栏中使用“a”标签,但是我认为以上是将类添加到Html.ActionLink的正确方法。我还有另一种(整洁)的方式可以做到这一点吗? 问题答案: 在Bootstrap中,需要将类应用于元素,而不是。 基于活

  • 活动、直播、会议本质都是市场活动,活动营销可以理解为非线下会议、在线直播的其他线上线下活动类型均可在活动营销下进行活动推广获客。 访问【设置】-【市场活动设置】可将活动类型映射到活动营销场景进行前端推广获客:

  • 我使用下面的代码将活动类添加到菜单项。该网站是99%使用WooCommerce的Ecomm,我使用产品类别作为顶级导航项目。下面的代码适用于几乎所有项目,除非在产品子类别上处于活动状态。 本质上,我希望顶层导航项被标记为活动类,即使选择了子类别。

  • 嘿,我是jquery的新手,我被困住了,我有这样的html 所以现在,如果touch部分在viewport中,则向body添加类(body类名为“touch-active”) 我正在尝试这段代码,但它对我不起作用: 提前致谢:)