Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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 Jquery在单击的元素上删除类并添加类_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript Jquery在单击的元素上删除类并添加类

Javascript Jquery在单击的元素上删除类并添加类,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一张6便士的唱片。我从第一个p开始,现在当你按下另一个p时,这个类是“活动的”,我希望这个活动的类被删除并添加到点击的p上 这就是我所知道的,类被添加到单击的p上,但没有从其他p上删除 这是我的html: <div class="slider-circles"> <p id="slide1" class="transparent-circle active"></p> <p id="slide2" class="transparent-c

我有一张6便士的唱片。我从第一个p开始,现在当你按下另一个p时,这个类是“活动的”,我希望这个活动的类被删除并添加到点击的p上

这就是我所知道的,类被添加到单击的p上,但没有从其他p上删除

这是我的html:

<div class="slider-circles">
   <p id="slide1" class="transparent-circle active"></p>
   <p id="slide2" class="transparent-circle"></p>
   <p id="slide3" class="transparent-circle"></p>
   <p id="slide4" class="transparent-circle"></p>
   <p id="slide5" class="transparent-circle"></p>
   <p id="slide6" class="transparent-circle"></p>

尝试抓取最近的
.slider圆圈
,找到class
.active
的子元素并删除该类。之后,只需将class
active
添加到当前元素

$(".slider-circles p").click(function(e){
 e.preventDefault();
 $(".active", $(this).closest(".slider-circles")).removeClass("active");
 $(this).addClass("active"); 
});

尝试抓取最近的
.slider圆圈
,找到class
.active
的子元素并删除该类。之后,只需将class
active
添加到当前元素

$(".slider-circles p").click(function(e){
 e.preventDefault();
 $(".active", $(this).closest(".slider-circles")).removeClass("active");
 $(this).addClass("active"); 
});

由于
p
已经是同级,因此不应调用
.parent()


由于
p
已经是同级,因此不应调用
.parent()


您只需要一行:

$(".slider-circles p").click(function(e){
    e.preventDefault();
    $(this).addClass("active").siblings().removeClass("active"); 
});

您只需要一行:

$(".slider-circles p").click(function(e){
    e.preventDefault();
    $(this).addClass("active").siblings().removeClass("active"); 
});

逻辑是这样的-

  • 点击
    p
    tag
  • 您将从所有
    p
    标记中删除
    active
  • 您将向该
    p
    标记添加类
  • 因此,通过这种方式,您将始终拥有简洁的代码

    $(文档).ready(函数(){
    $('.slider circles p')。单击(function(){
    $('.slider circles p').removeClass('active');
    $(this.addClass('active');
    });
    });
    
    .active{
    背景:钢蓝;
    颜色:#fff;
    填充:10px;
    }
    
    

    1第

    2第

    第3段

    4第

    5第

    6第


    逻辑如下-

  • 点击
    p
    tag
  • 您将从所有
    p
    标记中删除
    active
  • 您将向该
    p
    标记添加类
  • 因此,通过这种方式,您将始终拥有简洁的代码

    $(文档).ready(函数(){
    $('.slider circles p')。单击(function(){
    $('.slider circles p').removeClass('active');
    $(this.addClass('active');
    });
    });
    
    .active{
    背景:钢蓝;
    颜色:#fff;
    填充:10px;
    }
    
    

    1第

    2第

    第3段

    4第

    5第

    6第


    就像一个迷人的东西一样棒!像一个迷人的作品真棒!添加到click事件$('.transparent circle.active')。removeClass('active');添加到click事件$('.transparent circle.active')。removeClass('active')<代码>$('.active')。removeClass('active')
    $('p.active')。removeClass('active')也可以使用。我发现这是一种非常干净的方式,不涉及太多的类!:)<代码>$('.active')。removeClass('active')
    $('p.active')。removeClass('active')也可以使用。我发现这是一种非常干净的方式,不涉及太多的类!:)