javascript - 当孩子有类jquery时添加类
问题描述
我有一个将类“selected-role”添加到活动选项卡的表单,当表单选项卡具有类“selected-role”时,我试图更改父级的边框颜色。我如何让它只添加到“活动”选项卡?现在它正在为所有三个选项卡添加边框颜色
<div class="register_checkbox_label-container col">
<label tabindex="0" for="register_checkbox_one" class="form_checkbox_label form_checkbox_label--role selected-role" id="default-role" data-role="one">
One
</label>
</div>
<div class="register_checkbox_label-container col">
<label tabindex="0" for="register_checkbox_two" class="form_checkbox_label form_checkbox_label--role" data-role="two" data-offset="0">
Two
</label>
</div>
<div class="register_checkbox_label-container col">
<label tabindex="0" for="register_checkbox_three" class="form_checkbox_label form_checkbox_label--role" data-role="three" data-offset="0">
Three
</label>
</div>
查询:
if($('.form_checkbox_label').hasClass('selected-role')){
$(this).find('.register_checkbox_label-container').addClass('border-fuschia');
}
解决方案
您不需要循环来实现这一点。只需使用:has()
选择器选择父元素以仅匹配具有给定子元素的父元素:
$('.register_checkbox_label-container:has(.selected-role)').addClass('border-fuschia');
.border-fuschia {
border: 1px solid fuchsia;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="register_checkbox_label-container col">
<label class="selected-role">One</label>
</div>
<div class="register_checkbox_label-container col">
<label>Two</label>
</div>
<div class="register_checkbox_label-container col">
<label>Three</label>
</div>
请注意,我只删除了上面 HTML 的非必要部分,以使示例更短。
推荐阅读
- apache-camel - 运行 Camel In Action 2 时出现异常 - 第 7 章规则 - 原型
- asp.net - 使用自定义状态代码重写模块不适用于此代码?
- python - 为 start_requests 提供 URL 值以从另一个蜘蛛抓取
- python - 张量和numpy数组之间的PyTorch转换:加法运算
- intellij-idea - corda- QUASAR WARNING: Quasar Java Agent is not running trigger error java.lang.IllegalStateException: Missing the '-javaagent' JVM argument
- ios - 无法识别的选择器发送到实例 0x7f821c419e00'
- azure - 如何从 Azure 控制台检查服务器的上次启动
- python - Python:我如何使用 isnumeric()
- javascript - Javascript 流库 - 实现
- opencart-3 - 客户在 Opencart 3 中取消订单