2016-04-14 14 views
0

Sadece 2 td nesnesinin clasNname değerini kaybettiğini göreceksiniz. Neden "çok" değişkeni her className = "" bir itensi kaybeder? Biri bana yardım edebilir mi? Teşekkür ederim.neden bir nesne listesindeki sınıf adını değiştirir itenler listeden kaldırır

<!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) öğelerin * canlı * koleksiyonunu döndürdüğü için temel olarak DOM alt görünümüdür. . DOM'daki sonraki değişiklikler, bu tür görünümleri etkiler. –

cevap

0

getElememtsByClassName() yöntem artık hemen o nodelist kaldırılır o sınıf adı var o elemanları tarafından arandı sınıf adı çıkarmak nedenle eğer bir canlı nodelist döndürür many değişkeninde tutuldu.

İlgili konular