2016-04-14 4 views
0

2つのtdオブジェクトだけがclasNnameを失ったことがわかります。なぜ変数 "many"が各className = ""でitensを失うのですか?誰でも助けてくれますか?ありがとうございました。なぜオブジェクトのリストのclassnameを変更するとリストからitensが削除される

<!DOCTYPE html> 
 
    <html> 
 
    <head> 
 
     <title>Why?</title> 
 
     <style> 
 
      .f{background:lightblue;} 
 
      .g{background:lightcoral;} 
 
     </style> 
 
    </head> 
 
    <body> 
 
     <table id="t" style="border:1px solid black"> 
 
      <tr> 
 
       <td class="f">1</td> 
 
       <td class="f">2</td> 
 
       <td class="f">3</td> 
 
       <td class="f">4</td> 
 
      </tr> 
 
     </table> 
 

 
     <script> 
 
      many = document.getElementById("t").getElementsByClassName("f"); 
 
      document.write("initial length of many="+many.length+"<br>"); 
 
      for (var x = 0; x < many.length; x++) { 
 
       many[x].className=''; 
 
       document.write("loop x="+x+" many.length="+many.length+"<br>"); 
 
      } 
 
      document.write("final length of many="+many.length+"<br>"); 
 
     </script> 
 
    </body> 
 
</html>

+1

[getElementsByClassName()](https://developer.mozilla.org/en-US/docs/Web/API/Element/getElementsByClassName)は、要素のライブ*コレクションを返します.-基本的にDOMのサブビュー。その後のDOMの変更は、そのようなビューに影響します。 –

答えて

0

getElememtsByClassName()方法は、したがって、あなたはクラス名を削除する場合は、もはやそのクラス名を持っているこれらの要素が検索し、ライブのNodeListを返すのNodeListから削除すぐですmany変数で保持されます。

関連する問題