如何获取表格首字段内checkbox的选中状态并修改对应JS代码
实现逻辑
- 当下标f等于0时,从当前td节点中查询type为checkbox的input元素
- 读取checkbox元素的原生
checked属性,该属性直接返回布尔值:选中为true,未选中为false,无需额外转换
代码修改说明
你需要替换的console.log (td.item (f));行代码调整为如下逻辑:
if (f === 0) { // 查找当前td内的checkbox元素 const checkBox = td.item(f).querySelector('input[type="checkbox"]') // 打印选中状态,若td内无checkbox则默认返回false console.log(checkBox?.checked ?? false) }
如果需要兼容不支持可选链、空值合并运算符的旧版本浏览器,可以改成兼容写法:
if (f === 0) { const checkBox = td.item(f).querySelector('input[type="checkbox"]') console.log(checkBox ? checkBox.checked : false) }
完整修改后代码
var table = document.getElementsByClassName("table-sm"); for (var i = 0; i < table.length; i++) { var tr = table.item(i).getElementsByTagName("tr"); for (var j = 0; j < tr.length; j++) { var trr = tr.item(j); var td = tr.item(j).getElementsByTagName("td"); for (var f = 0; f < td.length; f++) { if (f === 0) { const checkBox = td.item(f).querySelector('input[type="checkbox"]') console.log(checkBox ? checkBox.checked : false) } console.log(td.item(f).innerText); } } }
注意事项
- 不要使用
getAttribute('checked')判断状态,该方法仅能读取HTML标签上的初始属性值,不会随用户勾选/取消操作同步更新 checked是DOM实时属性,会自动同步最新的交互状态,直接读取即可获得准确结果
内容的提问来源于stack exchange,提问作者VLDZ
相关产品推荐
相关产品推荐

