jquery更改方法和批量类添加

Posted

技术标签:

【中文标题】jquery更改方法和批量类添加【英文标题】:Jquery change method and bulk class adding 【发布时间】:2011-04-21 04:13:51 【问题描述】:

你好 我有一个表(类名“.data”),它的头上有一个复选框,用于选择/取消选择我的 tbody 中的所有复选框。

还可以单独选择 tbody 内的每个复选框,一旦选择了一个复选框,它就会向所选行添加一个新类(用于使背景成为其他颜色以突出显示)。

现在为此我写了这样的方法:

 function enableBulkCheckbox()
     $(".checkall").change(function()
        if ($(this).is(':checked'))
            $(".data input:checkbox").attr('checked', true);
        
        else
            $(".data input:checkbox").attr('checked', false);
        
    );


function selectMark(box)
    if ($(box).is(':checked'))
        $(box).parent().parent().addClass("selected");
    
    else
        $(box).parent().parent().removeClass("selected");
    
;

function applySelectMark()
     $(".data tbody input:checkbox").change(function()
        selectMark(this);
        alert("hooo");
    );
;

我初始化 enableBulkCheckbox() 和

似乎$(".data tbody input:checkbox").change 无法识别是否触发了enableBulkCheckbox()。然而,通过批量选择复选框选择/取消选择所有选项的工作方式与预期相同。如何解决这个问题,以便一旦我单击批量复选框,所有行都可以获得“选定”类。

【问题讨论】:

【参考方案1】:

我认为问题在于更改“已检查”属性不会触发更改事件。尝试在 enableBulkCheckbox 函数中调用 selectMark 函数:

function enableBulkCheckbox()
     $(".checkall").change(function()
        var chks=$(".data input:checkbox");
        if ($(this).is(':checked'))
            chks.attr('checked', true);
        
        else
            chks.attr('checked', false);
        
        chks.each(function()
           selectMark(this);
        );
    );

【讨论】:

谢谢!仅供参考,chks.each 在“”之后需要一个“)”。

以上是关于jquery更改方法和批量类添加的主要内容,如果未能解决你的问题,请参考以下文章

java 19 -15 File类批量更改文件名的方法

vscode 如何批量选中相同内容更改

如何批量在多个文件前面添加名称或者数字?

批量操作:更改密码,新增用户,添加ACL权限,删除用户

用于更改表添加复合主键的批量 SQL 语句

如何批量更改solidworks零部件的属性?