基于第一个单元格的值在JavaScript中隐藏表行

基于第一个单元格的值在JavaScript中隐藏表行,javascript,jquery,html,css,html-table,Javascript,Jquery,Html,Css,Html Table,我有一个HTML表需要过滤。我不知道为什么它不起作用。 我试着把我放进去,但没用。我认为错误在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-

我有一个HTML表需要过滤。我不知道为什么它不起作用。 我试着把我放进去,但没用。我认为错误在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后面的分号++


单元格的innerHTML不是5a,它是[HTMLObject],因为对象的innerHTML是5a,我应该用什么来代替innerHTML@RenéDatenschutzuse.innerText而不是innerHTML
for (var i = 2; i <= reih; i++) {