好几个class名相同的元素,点击其中一个更改样式,其他不变

有一组div  class名相同  我想点击其中一个更改样式,其他的div样式不变,我直接写$("#div").css的话会改变所有div的样式,这个该怎么写

参考这个

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #box {
            display: flex;
        }

        ul,li {
            list-style: none;
        }

        .b {
            width: 40px;
            height: 20px;
            background: grey;
            color: white;
            margin: 0 12px;
            text-align: center;
            cursor: pointer;
        }
        .c{
            width: 40px;
            height: 20px;
            background: grey;
            color: red;
            margin: 0 12px;
            text-align: center;
            cursor: pointer;
        }
    </style>
</head>

<body>
    <div id="box">


    </div>
</body>

<script>
    // 第三种 通过方法响应点击事件
    function threeFn(index) {
       var box=document.getElementById("box");
      
      for(var i=0;i<box.childNodes.length;i++){
         if(i==index){
            box.childNodes[i].className="c";
         }else{
            box.childNodes[i].className="b"
         }
      }
    }
    let box = document.getElementById("box");
    let html = "";
    for (var i = 0; i < 10; i++) {
        html += `<li class="b" onclick="threeFn(${i})">${i}</li>`
    }
    box.innerHTML = html;

</script>

</html>

 

$('.class').click(function(){

$(this).addClass('newClass').removeClass('oldClass').css({});

})

这两天老看到你提问啊。

首先  $("#div")取得是id为div的元素,不是取的class

假设你的元素 class="box",使用$(".box")选中。

然后是点击事件,click中使用$(this)代表当前点击的元素。

给你贴下代码

<div>
    <div class="box">22</div>
    <div class="box">33</div>
    <div class="box">44</div>
</div>


$('.box').click(function(){
    $(this).css("background-color","yellow")
})