为什么jquery通过prop()方法设置的属性没有在DOM里显示?

我想做个全选功能,在网上也查了不少,知道在点击表头复选框的时候用prop()方法设置checkbox的checked:

$('ul.ul-first').onclick(function(){
    $('ul:not(".ul-first")').prop('checked',this.checked);
});

点击表头进行全选或者取消也实现了,但是我查看DOM的时候发现,当我点击表头全选的时候子ul的复选框虽然是选中状态,但是DOM里这些子ul并没有checked = 'checked'属性,我后续想对这些选中的子ul进行处理的时候无法通过checked属性选取。
后续我通过

$('ul:not(".ul-first")').each(function(){
    console.log($(this).prop('checked'));
})

打印的全是undefined

阅读 3.4k
3 个回答

后续仍然是通过$('ul input').prop('checked')获取选中状态啊
难道你用$('ul input').attr('checked')获取?

尝试了一下,并没有出现你说的问题。你把代码贴全点吧。
还有:

$('ul.ul-first').onclick(function(){
    $('ul:not(".ul-first")').prop('checked',this.checked);
});

你这么绑定事件难道不会报错吗?

直接用原生js

this.checked = !!!this.checked
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题