Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果节具有活动类,则添加它';作为一个类,body的id是什么?_Javascript_Jquery_Html_Css_Sections - Fatal编程技术网

Javascript 如果节具有活动类,则添加它';作为一个类,body的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=

如果你能帮我解决这件事,我将不胜感激,我无法解决。我正在尝试创建一个函数: “如果任何节具有类“活动”=>则获取该节的id 将其作为类元素添加到正文中,否则将删除“

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

<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属性。您可以直接使用它,您可以在下面的演示中看到body
class
相应的更改:

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实际代码仅在文档加载时触发,您必须在更改任何节时调用它。