如何使用JQuery检测ul中被勾选的li复选框并获取对应文本
问题原因
代码判断复选框选中状态的入参写法错误:
- jQuery的
.prop()方法接收DOM原生属性名作为参数,判断选中状态的正确属性名是checked,不需要加冒号 - 带冒号的
:checked是jQuery选择器的专用语法,不能直接作为.prop()的入参使用,这就是始终无法命中true分支的根本原因
修正后完整代码
基础遍历实现(和你原有写法逻辑对齐)
// saveBtn函数内部代码 $("#DATE_29_CB_P li").each(function() { // 修正prop参数,去掉冒号 if ($(this).find("input[type=checkbox]").prop("checked")) { console.log("复选框已选中"); // 获取选中项的文本内容,trim去除前后空白字符 const selectedText = $(this).text().trim(); console.log("选中项文本:", selectedText); } else { console.log("复选框未选中"); } });
简化实现(无需遍历所有li,直接筛选选中项)
如果你页面上的复选框是单选逻辑(和你绑定的onlyOne函数逻辑匹配),可以直接用选择器筛选选中项,代码更简洁:
// saveBtn函数内部代码 const $checkedBox = $("#DATE_29_CB_P input[type=checkbox]:checked"); if ($checkedBox.length) { const selectedText = $checkedBox.closest("li").text().trim(); console.log("选中项文本:", selectedText); }
内容的提问来源于stack exchange,提问作者user16542536
相关产品推荐
相关产品推荐

