jQuery遍历表格获取选中复选框邻近span文本的代码问题排查
代码错误说明
你获取不到span文本的核心问题是DOM查找逻辑不符合实际结构:
- 代码里用
$(this).find('.CellComment')做查询,但jQuery的find()只会检索当前元素的后代节点 - 对照HTML结构,
class="CellComment"的span和复选框input是同级元素,共同放在class="CellWithComment"的td容器下,不是input的子元素,所以查询永远返回空,自然拿不到文本。
修正方案
只需要调整查找路径,先定位到复选框所在的父td,再检索内部的CellComment元素即可,修正后的完整代码:
$('.stChange').on('change', function () { var st = $(this).val(); var vls = st.split('-'); if( vls[0] == 0){ console.log('0',st); $(this).closest('tr').find('input[type=checkbox]:checked').each(function(){ // 先定位到复选框所属的td,再找内部的注释span console.log($(this).closest('td.CellWithComment').find('.CellComment').text()); }); } if( vls[0] == 2){ // 此处可补充状态为logout时的逻辑 } });
更简便的写法
因为目标span是复选框的同级元素,也可以直接用siblings()方法匹配,不需要向上找父级:
// 替换原查找语句即可 console.log($(this).siblings('.CellComment').text());
内容的提问来源于stack exchange,提问作者Assaf Schwartz
相关产品推荐
相关产品推荐

