2016-04-10 15 views
0

Aşağıda görebileceğiniz gibi, 'window.onload' ve var x '[<div class="myInput"></div>]', ancak '[]' değil çalıştırılacak.neden alabilirsinizElementsByClassName "window.onload" olmadan çalıştırılabilir

<html> 
<head> 
    <script type="text/javascript"> 
     var x=document.getElementsByClassName("myInput"); 
    </script> 
</head> 
<body> 
    <div class="myInput"></div> 
</body> 
</html> 

Öğeyi diziye nasıl ve ne zaman koyar?

+2

"HTMLCollection" etkin olduğu için –

+0

x "[

]" chrome'da, kendiniz deneyin – jinsihou

+0

@itsgoingdown thx, anlıyorum. – jinsihou

cevap

1

x, bulunan HTMLCollection öğesinin ortalama bir parçasıdır, yani temel belge değiştirildiğinde, bu otomatik olarak güncelleştirilir (bu, bu durumda, olduğu gibi).

Yani x değeri başlangıçta belge yüklendiğinde olduğundan daha farklıdır:

<html> 
 
<head> 
 
    <script type="text/javascript"> 
 
     var x=document.getElementsByClassName("myInput"); 
 
     document.write('Initial: ', x, '<br>'); 
 
     document.write('Initial Length: ', x.length, '<br>'); 
 
    </script> 
 
</head> 
 
<body> 
 
    <div class="myInput"></div> 
 
    
 
    <script type="text/javascript"> 
 
     document.write('Final: ', x, '<br>'); 
 
     document.write('Final Length: ', x.length, '<br>'); 
 
    </script> 
 
</body> 
 
</html>

-2

HTML belgesi yukarıdan aşağıya tarayıcı tarafından okunur. Başda iken, x = document.getElementsByClassName("classname") yapmayı denerseniz, tarayıcı hala komut satırının 1. satırından sonra hiçbir şey okumadığından hiçbir öğe yoktur.

Daha sonra tarayıcı, <body> etiketini okur, elemanlar oluşturur ve onload ile bu noktada çağırırsanız listeyi alırsınız.

+0

, neden doğru yorum yapmadığı için doğru olanı söylemek istemedim. – Dellirium

+0

Kodumu deneyebilir ve x, chrome'da [

] 'dır. – jinsihou

+0

Oh bekle, soruyu yanlış anladım, bu yüzden soru neden CAN ve neden OLABİLİR? Olsa da garip görünüyor, ama sorunun ne olduğunu görmüyorum. – Dellirium

İlgili konular