Javascript 如果节具有活动类,则添加它';作为一个类,body的id是什么?
如果你能帮我解决这件事,我将不胜感激,我无法解决。我正在尝试创建一个函数: “如果任何节具有类“活动”=>则获取该节的id 将其作为类元素添加到正文中,否则将删除“ 这是下面的代码,但它不能正常工作,或者当我滚动到下一节时,新类没有被添加,上一个类被删除Javascript 如果节具有活动类,则添加它';作为一个类,body的id是什么?,javascript,jquery,html,css,sections,Javascript,Jquery,Html,Css,Sections,如果你能帮我解决这件事,我将不胜感激,我无法解决。我正在尝试创建一个函数: “如果任何节具有类“活动”=>则获取该节的id 将其作为类元素添加到正文中,否则将删除“ 这是下面的代码,但它不能正常工作,或者当我滚动到下一节时,新类没有被添加,上一个类被删除 <body class=""> <section id="home" class="active"> </section> <section id="about" 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');
}
if($('section').hasClass('active')){
var dataSection=$('section').attr('id');
$body.addClass(dataSection.replace('#','')+'-active');
}否则{
$body.removeClass('home-active');
}
当您使用始终返回第一节的id的$('section').attr('id')
时,您需要在节中使用此:
$('section').attr('id');
应该是:
$(this).attr('id');
因此,它将获得当前区段的id,也无需更换,两条线路可组合为:
$body.addClass($(this).attr('id') + '-active');
注意:您始终可以使用如下选择器获取活动部分:
$('section.active')
希望这能有所帮助。请尝试在此处使用此
if( $(something).hasClass("active") ){
var grabId = $(this).attr("id");
$("body").attr("id", grabId);
}
实际上,$('section')。attr('id')
将为您提供不带#
的id属性。您可以直接使用它,您可以在下面的演示中看到bodyclass
相应的更改:
if($('section').hasClass('active')){
$(“body”).addClass($('section').attr('id')+'-active');
}否则{
$(“body”).removeClass('home-active');
}
console.log($(“body”).attr('class')代码>
.replace()
调用是不必要的,.id
属性不包括“#”
字符$body.addClass($(this.attr('class'))
而不是$body.addClass(dataSection.replace('.''.')+'-active))
您是否在某处定义了$body
变量,或者您是否打算使用$('body')
?何时使用if..else
<代码>$('section')。hasClass('active')
将只查询并返回第一个
的布尔值结果element@ViliamAboši是的,我在js文件中定义了$body,但它表示未定义的活动,当滚动到例如about section=>时,about active被添加到body?可能是因为$this或?是的,我的坏$('this')
应该是$(this)
(post updated)。谢谢,它起作用了:),但我的问题是,当第二节处于活动状态时,id+active不会添加到正文中。仍在尝试测试不同的变体,但不起作用:(谢谢,这也起作用了:),但我的问题是,当第二部分处于活动状态时,id+active不会添加到主体中。仍在尝试测试不同的变体,但不起作用:(谢谢,它起作用了:),但无法在第二节激活后将另一个类添加到正文。@HajiHashimov实际代码仅在文档加载时触发,您必须在更改任何节时调用它。