Javascript 检查更改时的动态复选框

Javascript 检查更改时的动态复选框,javascript,jquery,html,css,checkbox,Javascript,Jquery,Html,Css,Checkbox,我有一个充满复选框的动态表,这些复选框可能会被选中,也可能不会被选中。我已经编写了一个jquery脚本,每当修改复选框时,它都会更改表单元格的bg颜色;然而,这是相当多的车,它并不总是改变BG的颜色立即 有什么建议吗 HTML: 我建议,尽管未经测试: $('table td input[type="checkbox""]').change(function(){ $(this).closest('td').css('background-color', this.checked ?

我有一个充满复选框的动态表,这些复选框可能会被选中,也可能不会被选中。我已经编写了一个jquery脚本,每当修改复选框时,它都会更改表单元格的bg颜色;然而,这是相当多的车,它并不总是改变BG的颜色立即

有什么建议吗

HTML:



我建议,尽管未经测试:

$('table td input[type="checkbox""]').change(function(){
    $(this).closest('td').css('background-color', this.checked ? 'color' : 'inherit');
});

我建议,尽管未经测试:

$('table td input[type="checkbox""]').change(function(){
    $(this).closest('td').css('background-color', this.checked ? 'color' : 'inherit');
});

我将更改查找表行元素的方式。使用

$(this).parents('tr').css('background-color', color);  

我不知道您的html,但这可能会提供更一致的结果。

我将更改您查找表行元素的方式。使用

$(this).parents('tr').css('background-color', color);  

我不知道您的html,但这可能会提供更一致的结果。

我认为使用类更灵活:

$('table').on('change', ':checkbox', function() {
    $(this).closest('tr').toggleClass('selected', this.checked);
})
.find(':checkbox').trigger('change');

例如:

我认为使用类更灵活:

$('table').on('change', ':checkbox', function() {
    $(this).closest('tr').toggleClass('selected', this.checked);
})
.find(':checkbox').trigger('change');

例如:

你所说的“相当多的童车”是什么意思?使用
.change()
已选中复选框不受影响,是否确定?请提供一些HTML和更多JS(是否定义了
color
?给定的ID是否来自复选框tr或th/td?)th/td。。我有多个id为“approvalROW#”的行,每个复选框的id为“approvalcd#”,其中#是行的动态数量。我想检测每种颜色的变化并改变背景颜色。你说的“相当童车”是什么意思?使用
.change()
已选中复选框不受影响,是否确定?请提供一些HTML和更多JS(是否定义了
color
?给定的ID是否来自复选框tr或th/td?)th/td。。我有多个id为“approvalROW#”的行,每个复选框的id为“approvalcd#”,其中#是行的动态数量。我想检测每个的更改并更改背景颜色。我以前有“$”(“[id^=approvalcd]”)。更改(function(){”以检查id为“approvalcd#”的所有复选框,其中#是表中的动态行数。不幸的是,我尝试过处理您的脚本,但无法使其正常工作-(您是否考虑过显示您的HTML?可能是一个实时的或类似的演示?我以前有“$”(“[id^=approvalcd]”)。更改(function(){”以选中所有id为“approvalcd#”的复选框,其中#是表中的动态行数。不幸的是,我尝试过处理您的脚本,但无法使其正常工作:-(你有没有考虑过展示你的HTML?也许是一个实时的,或者类似的演示?哦…太好了。非常干净。这太棒了!它工作完美无瑕!我不得不将“This.checked”改为“This”要使其与默认选中的复选框一起工作!谢谢!请参阅更新的答案如何触发初始复选框更改事件。您也可以这样做:哦…太好了。非常干净。这非常好!它工作完美!我必须将“this.checked”更改为“this”要使其与默认选中的复选框一起工作,请参见更新的答案如何触发初始复选框更改事件。您也可以这样做: