【发布时间】:2020-12-14 06:06:37
【问题描述】:
我正在尝试有条件地将“close-3”类添加到祖先的所有子“输入”元素中。祖先应该包含类“.summon-next-element.on-sub-sub-level”。但是,我没有任何效果 - 没有添加类,控制台中没有错误,什么都没有。这是 jQuery:
$('.summon-next-element.on-sub-sub-level').each(function() {
if ($(this).find("input").is(":checked")) {
$(this).nextAll(".summoned-element").first().find("input").addClass("opened-3").removeClass("closed-3");
} else {
$(this).nextAll(".summoned-element").first().find("input").addClass("closed-3").removeClass("opened-3");
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="summon-next-element on-sub-sub-level">
<input type="radio" name="frais_renovation" id="frais_renovation_oui" class="oui">
<label for="frais_renovation_oui">oui</label>
</div>
<div class="checkbox">
<input type="radio" name="frais_renovation" id="frais_renovation_non" class="non">
<label for="frais_renovation_non">non</label>
</div>
<div class="summoned-element">
<div class="checkbox info-circle right">
<input type="radio" name="frais_renovation_justificatifs" id="frais_renovation_fichier">
<label for="frais_renovation_fichier">
Mes justificatifs 1
</label>
</div>
<div class="checkbox info-circle right">
<input type="radio" name="frais_renovation_justificatifs" id="frais_renovation_tickets" checked>
<label for="frais_renovation_tickets">
Mes justificatifs 2
</label>
</div>
</div>
<!-- end of summoned element -->
非常感谢您的帮助!
【问题讨论】:
-
.summon-next-element.on-sub-level中的任何输入均未检查。所以它将删除类,而不是添加它。 -
如果没有检查输入,它应该删除类“opened-3”,但应该添加类“close-3”。也不行....
-
您需要另外将代码包装在单选按钮的选中事件中
-
@sergeykuznetsov,是的,问题似乎出在单选按钮上,因为它在复选框上运行良好。如何将代码包装在选中的事件中?对不起...
-
@BenViatte,我给了你一个解决方案。请检查。