Javascript 为什么我的变量在更改另一个变量的显示后变得未定义?

Javascript 为什么我的变量在更改另一个变量的显示后变得未定义?,javascript,loops,undefined,getelementbyid,getelementsbyclassname,Javascript,Loops,Undefined,Getelementbyid,Getelementsbyclassname,我试图隐藏特定唯一ID下的某些行。例如: <tbody id="row0"> <tr class="state0"></tr> <tr class="state1"></tr> <tr class="state2"></tr> <tr class="state3"></tr> </tbody> 然后像这样隐藏两行: for (let index in stat

我试图隐藏特定唯一ID下的某些行。例如:

<tbody id="row0">
  <tr class="state0"></tr>
  <tr class="state1"></tr>
  <tr class="state2"></tr>
  <tr class="state3"></tr>
</tbody>
然后像这样隐藏两行:

for (let index in state0) {state0[index].style.display = 'none'}
for (let index in state1) {state1[index].style.display = 'none'}
一旦我隐藏state0的行,就会得到一个错误,说state1不再被定义。每当我隐藏一行时,就会发生这种情况,即使在我直接从id获取元素之后,下一行仍然是未定义的。有人能帮我解释一下为什么会这样吗

<tbody id="row0">
  <tr class="state0"></tr>
  <tr class="state1"></tr>
  <tr class="state2"></tr>
  <tr class="state3"></tr>
</tbody>

var state0 = document.querySelector('#row0 > .state0');
var state1 = document.querySelector('#row0 > .state1');

state0.style.dysplay = 'none';
state1.style.dysplay = 'none';
你可以用

for (var i = 0; i <state0.length; i ++) {
   var indexOfChild = state0 [i];
   ...
}

用于(var i=0;我发布您的日志请按以下方式发布:是否需要类行
state0,state1…
。您可以使用
children
属性直接获取它们。这正是我需要的。我只需将
querySelector
更改为
queryselectoral
,因为每行ID可能有多个子行,其中一行为美国。非常感谢你的帮助。:)
for (index in state0) {
   // index will be a property of the state0 object
   // state0 is not an array and has other properties than child indices, for example length, item, namedItem ...
   // state0['length'] have not property 'style'
}
for (var i = 0; i <state0.length; i ++) {
   var indexOfChild = state0 [i];
   ...
}