如何通过DataTable对象遍历行,检查每行复选框的选中状态?
解决Datatable遍历所有行检查复选框选中状态的问题
直接用Datatable提供的rows().every()方法就能遍历所有行(包括不在当前页面的),再通过node()获取对应行的DOM节点,之后就可以用你熟悉的jQuery方法检查复选框状态了,代码示例如下:
myDataTable.rows().every(function() { // 获取当前行的DOM元素 const rowDom = this.node(); // 检查该行的复选框是否选中 const checked = $(rowDom).find(':checkbox').is(':checked'); // 这里可以根据状态做后续操作,比如收集选中行的数据 if (checked) { console.log('选中行的数据:', this.data()); } });
补充说明
rows().every()会遍历Datatable的所有行,不管是否在当前分页页面显示,刚好匹配你需要检查全量行状态的需求。this.node()是关键:它能拿到当前行对应的真实DOM节点,这是data()方法做不到的——data()只存行的数据源,不关联DOM元素。- 如果只需要检查当前页面的行,把
rows()改成rows({page:'current'})即可。
内容的提问来源于stack exchange,提问作者HelloPuppy
相关产品推荐
相关产品推荐

