有一组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")
})