我想禁用或启用6个下拉列表,带有6个复选框。我以6个功能的方式完成了这个,但是只想要1个功能。能做到吗?
这是我的html的屏幕截图,下面是我的代码。enter image description here
$('#check_policy1').click(function(){
if($('#check_policy1').is(':checked')){
$(this).closest('.row').children('div:nth-child(3)').children('div').children('select.a').removeAttr('disabled');
}
else {
$(this).closest('.row').children('div:nth-child(3)').children('div').children('select.a').attr('disabled', 'disabled');
}
});
$('#check_policy2').click(function(){
if($('#check_policy2').is(':checked')){
$(this).closest('.row').children('div:nth-child(3)').children('div').children('select.a').removeAttr('disabled');
}
else {
$(this).closest('.row').children('div:nth-child(3)').children('div').children('select.a').attr('disabled', 'disabled');
}
});
答案 0 :(得分:1)
Multiple Selector (“selector1, selector2, selectorN”)。您需要在事件处理程序中使用this
,该处理程序引用调用事件处理程序的元素。
$('#check_policy1, #check_policy2').change(function() {
$(this)
.closest('.row')
.children('div:nth-child(3)')
.children('div')
.children('select.a')
.prop('disabled', !this.checked);
});
或者,您可以为所有复选框分配一个公共类,然后使用类选择器。
$('.check_policy').change(function() {
$(this)
.closest('.row')
.children('div:nth-child(3)')
.children('div')
.children('select.a')
.prop('disabled', !this.checked);
});