请您查看this demo并告诉我为什么我无法动态更改.num
背景色
$(function () {
$('.panel-group .panel .panel-heading .panel-title > a ').on('click', function () {
$(this).prev().closest(".num").css("background-color", "red");
});
});
$(function () {
$('.panel-group .panel .panel-heading .panel-title > a ').on('click', function () {
$(this).prev().closest(".num").css("background-color", "red");
});
});

.num {
background-color: #000000;
padding:3px 7px 3px 7px;
color:white;
border-radius: 25px;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="panel-group">
<div class="panel">
<div class="panel-heading">
<div class="panel-title">
<a class="c-font" role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
<span class="num">1</span> Specify Energy Target
</a>
</div>
</div>
</div>
</div>
&#13;
答案 0 :(得分:1)
您需要使用find()
来获取链接的子项$('.panel-group .panel .panel-heading .panel-title > a ').on('click', function () {
$(this).find(".num").css("background-color", "red");
});
此外,您的选择器很长,只需使用:
$('.panel-title > a ').on('click', function () {
$(this).find(".num").css("background-color", "red");
});
工作jsfiddle
答案 1 :(得分:1)
由于.num
是点击anchor
的后代,请使用find()
选择后代:
$(this).find(".num").css("background-color", "red");
您也可以使用children()
,因为.num
是直接后裔:
$(this).children(".num").css("background-color", "red");
答案 2 :(得分:1)
由于.closest()
上升,而您的目标.num
是a
的孩子。
根据https://api.jquery.com/closest/
对于集合中的每个元素,通过测试元素本身并遍历DOM树中的祖先来获取与选择器匹配的第一个元素
仅更新javascript:
$(function () {
$('.panel-group .panel .panel-heading .panel-title > a ').on('click', function () {
$(this).children(".num").css("background-color", "red");
});
});
.num {
background-color: #000000;
padding:3px 7px 3px 7px;
color:white;
border-radius: 25px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="panel-group">
<div class="panel">
<div class="panel-heading">
<div class="panel-title">
<a class="c-font" role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
<span class="num">1</span> Specify Energy Target
</a>
</div>
</div>
</div>
</div>