如何检测td元素是否包含数字9?当前JS代码无输出寻求解决方案
表格数字匹配问题及解决方法
我有一个带数字序号的表格,生成每行序号的代码如下:
<td id="table-number">{{ $loop->index + 1 }}</td>
我想找出表格中数字为9的行,编写了以下JavaScript代码,但没有任何输出:
const number = document.getElementById('table-number'); if(number.textContent.includes('9')) { console.log('heyhey'); }
问题原因
- ID唯一性限制:循环生成的表格里所有序号单元格都用了同一个
table-numberID,getElementById只会返回第一个匹配的元素,无法获取所有行的序号单元格。 - 匹配逻辑不精确:
includes('9')是模糊匹配,会把19、90这类包含9的数字也纳入匹配,不符合“数字为9”的精确匹配需求。
解决思路
- 替换ID为类名:将
id="table-number"改为class="table-number",这样可以选中所有序号单元格:
<td class="table-number">{{ $loop->index + 1 }}</td>
- 遍历元素并精确匹配:使用
querySelectorAll获取所有序号单元格,遍历后将文本转为数字进行精确比较:
const numberCells = document.querySelectorAll('.table-number'); numberCells.forEach(cell => { const num = parseInt(cell.textContent.trim(), 10); if (num === 9) { console.log('找到目标项:', cell); // 可在此添加对目标单元格的操作,比如高亮、获取所在行等 } });
如果使用jQuery,也可以这样实现:
$('.table-number').filter(function() { return parseInt($(this).text().trim(), 10) === 9; }).each(function() { console.log('找到目标项:', $(this)); });
内容的提问来源于stack exchange,提问作者azola akbar
相关产品推荐
相关产品推荐

