GetElementsByTagName (). length returns zero

I am trying to do a simple thing, for example:

var elements = document.getElementsByTagName("input"); console.log(elements); console.log(elements.length); 

The .log console (elements) shows a NodeList containing 28 input elements, but element.length is always 0.

I also saw this getElementsByTagName ("div"). length returns zero for any web page , however, I did not understand what exactly is the reason for this and how to fix it. I also noticed that this happens both in Firefox, IE, and in Chrome.

Can anybody help me?

+6
source share
1 answer

NodeList is a live collection, and unwritten scripts are executed immediately (see script defer).

Try this and you will get an idea of ​​what is going on:

 <html> <head> <title></title> <style></style> <script type="text/javascript"> var elements = document.getElementsByTagName("div"); alert(elements.length); </script> </head> <body> <div>1</div> <script type="text/javascript"> //var elements = document.getElementsByTagName("div"); alert(elements.length); </script> </body> </html> 
+7
source

Source: https://habr.com/ru/post/887030/


All Articles