【发布时间】:2011-07-27 20:28:17
【问题描述】:
我有一个动态生成的 n 行表格,每行都有一个复选框。选中复选框时,如何使该表行具有不同的背景颜色?
如果需要,我可以使用 jQuery。
【问题讨论】:
我有一个动态生成的 n 行表格,每行都有一个复选框。选中复选框时,如何使该表行具有不同的背景颜色?
如果需要,我可以使用 jQuery。
【问题讨论】:
如果您使用的是 jQuery,那就太简单了:
$("tr :checkbox").live("click", function() {
$(this).closest("tr").css("background-color", this.checked ? "#eee" : "");
});
基本上,它的作用是识别一行中包含的复选框,观察对它们的点击,然后在事件处理程序中使用它们的状态来设置包含该复选框的行的background-color CSS 样式。
需要考虑扩充/修改的事项:
live 以防客户端上的表是动态的(例如,如果您添加或删除行),尽管您可能更喜欢使用以表为根的delegate。如果表格完全是静态的,您可以只使用click。$("tr :checkbox.foo"),其中“foo”是类)或复选框名称($("tr :checkbox[name=foo]"))进行过滤。【讨论】:
$('tr :checkbox').live('click', function () {
$(this).closest('tr').toggleClass('selected_row_style');
});
【讨论】:
$("checkbox").live("click", function()
{
if (this.checked)
{
$(this).attr('background-color','#FFFFFF');
}
else
{
$(this).attr('background-color','#000000');
}
}
【讨论】:
$(this) 而不是this?
this.checked)是正确的。另外,@Alan,当你 uncheck 时会发生什么?