javascript - 根据第一个单元格的值在 JavaScript 中隐藏表行

标签 javascript jquery html css html-table

我有一个需要过滤的 HTML 表格。我不知道为什么它不起作用。 我试图将 i 放入 '' 但它没有用。我认为错误出在 for 循环或 querySelector 中。


function filtern(){
var reih = document.querySelector('.mon_list').rows.length
for (var i= 2: i <= reih; i++;){
if ((document.querySelector('.mon_list tr:nth-Child(i) td:nth-Child(1)').innerHTML) != ("5a")){
document.querySelector('.mon_list tr:nth-Child(i)').style.display='none';
}
}
document.getElementById("demo2").innerHTML = document.querySelector('.mon_list tr:nth-Child(2) td:nth-Child(1)').innerHTML;
document.getElementById('demo').innerHTML = reih;
}
filtern();

和 HTML

<head>
</head>
<body>
<p>
<table class="mon_list" >
<tr class='list'><th class="list" align="center"><b>Klasse(n)</b></th>
<th class="list" align="center">Stunde</th>
<th class="list" align="center">(Lehrer)</th>
<th class="list" align="center"><b>Vertreter</b>
</th><th class="list" align="center">Fach</th>
<th class="list" align="center">Raum</th><th class="list" align="center">Vertretungs-Text</th>
</tr>
<tr class='list odd'><td class="list" align="center">
<b>5a</b></td><td class="list" align="center">5</td>
<td class="list" align="center">Se</td>
<td class="list" align="center"><b>Ma</b>
</td><td class="list" align="center">BNT-b</td>
<td class="list" align="center">2.25</td>
<td class="list" align="center">Vertretung</td>
</tr>
<tr class='list even'><td class="list" align="center"><b>5a</b></td>
<td class="list" align="center">6</td>
<td class="list" align="center">Se</td>
<td class="list" align="center"><b>---</b></td>
<td class="list" align="center">---</td>
<td class="list" align="center">---</td>
<td class="list" align="center">frei</td>
</tr>
</table>
</p>
<p id="demo"></p>
<p id="demo2"></p>
</body>

最佳答案

更改您的 if 条件和内部语句,注意变量 ' + i + ' 的串联。您已将其用作字符串,它应该是数字。

if ((document.querySelector('.mon_list tr:nth-Child(' + i + ') td:nth-Child(1)').innerHTML) != ("5a")){
      document.querySelector('.mon_list tr:nth-Child(' + i + ')').style.display='none';
}

同样在 for 循环中使用分号 (;) 而不是冒号 (:) 并在 i++ 之后删除分号

for (var i = 2; i <= reih; i++) {

关于javascript - 根据第一个单元格的值在 JavaScript 中隐藏表行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56858183/

相关文章:

php - 在群组中共享实时 GPS 坐标的最佳方式是什么?

javascript - shallowWrapper 为空,正在测试快照 Jest/Enzyme?

jquery - 通过jquery为多个div设置css left?

javascript - 弹出窗口打开时在后台禁用所有内容

jquery - jQuery 在选择列表上验证的问题

html - Safari 和 bootstrap 4 flexbox 错误

javascript - JavaScript 排序中 "greater than"和 "subtract"的区别

javascript - 使用preventDefault后,为什么我不能用jquery选中一个框?

Javascript:在 x 为 object.style.left 时更改 x 的值;

java - 使用 thymeleaf 数据创建隐藏输入