小编典典

jQuery attr('checked','checked')仅工作一次

javascript

我在查找以下jquery / checkbox行为的原因时遇到问题。

$( this.obj + ' table.sgrid-content > thead > tr > th > input.select_all' ).on( 'click' , {grid:this} , function(event){

var grid = event.data.grid;

if( $(this).is(':checked') ){

    $( grid.obj + ' table.sgrid-content > tbody > tr > td > input.select ' ).attr('checked','checked');
    $( grid.obj + ' .sgrid-content > tbody > tr > td > input.select ' ).parents('tr').addClass('ui-state-highlight');

} else {

    $( grid.obj + ' table.sgrid-content > tbody > tr > td > input.select ' ).removeAttr('checked');
    $( grid.obj + ' table.sgrid-content > tbody > tr > td > input.select ' ).parents('tr').removeClass('ui-state-highlight');

}

});

该代码旨在按以下方式工作:-单击input.select_all触发事件-
如果选中了input.select_all:将选中的属性添加到table.sgrid-content中标记为.select的所有复选框-如果未选中:则删除“
‘属性来自所有input.select项。

另一个简单的网格功能。而且有效。奇怪的是,它只能工作一次。我的意思是,您可以选择所有复选框,然后取消选择它们。完成该操作后,“全选”功能将停止工作。

另一个奇怪的事情是,当我用萤火虫检查dom元素时,它们全部都变成了应该被选中的“ checked”属性,但是它们显示并表现为未选中状态。

选择器可以正常工作。添加/删除 ui-state-highlight 的代码部分一直有效。

explenation的字: 网格 -是我通过得到grid.obj(一ceratain DIV的基本ID)的对象

请给我您的意见。


阅读 368

收藏
2020-05-01

共1个答案

小编典典

使用 prop(’checked’,true / false) 代替removeAttr

$('input[name=foo]').prop('checked', true);
$('input[name=foo]').prop('checked', false);
2020-05-01