我正在编写一些允许以下内容的代码:
1。)如果用户选中了一个复选框,它将更改父<tr>
以选择一个类(这也可以取消选中并删除该类)
2。)任何已经检查过的复选框都会在文档加载
上添加类3。)如果用户检查#checkall输入,则将检查所有输入并添加所选类别(如果再次检查,则将取消选择所有并删除该类)
这是我到目前为止的代码:
$("table input[name=choose]:checked").each(function()
{
$(this).closest("tr").addClass("selected");
});
$("table input[name=choose]").live("change", function()
{
$(this).closest("tr").toggleClass("selected");
});
if ($('#checkall:checked') == true)
{
$('#checkall').live("click", function()
{
$('table input[name=choose]').attr('checked', false);
$('table input[name=choose]').closest("tr").toggleClass("selected");
});
}
else
{
$('#checkall').live("click", function()
{
$('table input[name=choose]').attr('checked', true);
$('table input[name=choose]').closest("tr").toggleClass("selected");
});
}
前两个工作正常但是数字3没有取消选中复选框...任何想法为什么?但是班级部分工作正常吗?
由于
答案 0 :(得分:1)
我猜它总是运行到else块中(你调试了这个)吗?
尝试编写此选项以检查是否选中了复选框:
if ($('#checkall').attr('checked'))
答案 1 :(得分:0)
因为if ($('#checkall:checked') == true)
始终为假..
使用
if ($('#checkall').is(':checked'))
或
if ( $('#checkall:checked').length )
评论后更新
用
替换整个第三部分(所有if / else )$('#checkall').live("change", function()
{
$('table input[name=choose]')
.attr('checked', this.checked)
.closest("tr")
.toggleClass("selected", this.checked);
});