为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

我在查找以下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)的对象请给我您的意见。
查看完整描述

3 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

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


$('input[name=foo]').prop('checked', true);

$('input[name=foo]').prop('checked', false);


查看完整回答
反对 回复 2019-12-04
?
倚天杖

TA贡献1828条经验 获得超3个赞

使用.prop('checked',true) and .prop('checked',false)代替.attr('checked','checked') or .removeAttr。现在,jQuery中已弃用了用于操作检查/选定状态的attr 

查看完整回答
反对 回复 2019-12-04
?
跃然一笑

TA贡献1826条经验 获得超6个赞

您可以更改属性,并且如果该元素保持不变,也将更改属性。元素离开此初始状态后,更改属性不再影响该属性。确切的行为可能因浏览器而异。


Instead of .attr('checked', 'cheked') use .prop('checked', true)


查看完整回答
反对 回复 2019-12-04
  • 3 回答
  • 0 关注
  • 482 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信