我想根据div标签中包含的复选框是否已废弃,将特定类应用于div。但是我无法申请或删除课程。你能指导我如何实现这个目标吗?以下是我的代码:
<p id="parentCheckbox" class="custom-form">
<input class="custom-check" type="checkbox" name="" id="ckbCheckAll">
</p>
<p class="custom-form">
<div class="ez-checkbox">
<input id="" class="custom-check checkBoxClass ez-hide ez-checked" type="checkbox" name="item[]"></input>
</div>
<label>
J2P: Electromagnetic Waves
</label>
</p>
<p class="custom-form">
<div class="ez-checkbox"><input id="" class="custom-check checkBoxClass ez-hide" type="checkbox" disabled="disabled" name="item[]"></input>
</div>
<label>
NEET XII Testlet : Electrostatics 2
</label>
</p>
<p class="custom-form">
<div class="ez-checkbox">
<input id="" class="custom-check checkBoxClass ez-hide" type="checkbox" name="item[]"></input>
</div>
<label>
J2P: Ray Optics & Optical Instruments
</label>
</p>
<p class="custom-form">
<div class="ez-checkbox">
<input id="" class="custom-check checkBoxClass ez-hide" type="checkbox" disabled="disabled" name="item[]"></input>
</div>
<label>
NEET XII Testlet : Electrostatics 2
</label>
</p>
<p class="custom-form">
<div class="ez-checkbox"><input id="" class="custom-check checkBoxClass ez-hide" type="checkbox" name="item[]"></input>
</div>
<label>
J2P: Electromagnetic Waves
</label>
</p>
<p class="custom-form">
<div class="ez-checkbox"><input id="" class="custom-check checkBoxClass ez-hide" type="checkbox" disabled="disabled" name="item[]"></input>
</div>
<label>
NEET XII Test : Electrostatics
</label>
</p>
<script type="text/javascript" language="javascript">
$(document).ready(function() {
$("#ckbCheckAll").click(function () {
if ($(this).is(':not(:checked)'))
$(".ez-checkbox input:not(:disabled)").removeClass("ez-checked");
if($(this).is(':checked'))
$(".ez-checkbox input:not(:disabled)").addClass("ez-checked");
});
});
</script>
我已经做了很多努力使事情发生但却无法实现。请帮助我实现它。提前谢谢。
答案 0 :(得分:0)
您的代码工作正常,但可以简化。
$("#ckbCheckAll").click(function () {
$(".ez-checkbox input:enabled").toggleClass("ez-checked", this.checked);
});
如果它似乎不起作用,或者jQuery没有加载,或者你的ez-checked
样式没有产生视觉差异。
如果您要将课程添加到div
,请使用.parent()
或.closest()
。
$("#ckbCheckAll").click(function () {
$(".ez-checkbox input:enabled").closest("div")
.toggleClass("ez-checked", this.checked);
});
如果您要将课程添加到input
和div
,请将两个解决方案合并。
$("#ckbCheckAll").click(function () {
$(".ez-checkbox input:enabled").toggleClass("ez-checked", this.checked)
.closest("div")
.toggleClass("ez-checked", this.checked);
});
答案 1 :(得分:0)
要添加/删除包含div的类,只需使用父选择器:
这是一个有效的例子:
// This follows the same logic as your current code, just written slightly different
$(document).ready(function() {
$('#formA').on('click', '.ez-checkbox input:not(:disabled)',function(){
var elem = $(this);
elem.parent('div')[ ((elem.is(':not(:checked)')) ? 'remove':'add')+'Class']('ez-checked');
});
});