2017-04-19 56 views
-1
console.log(document.getElementsByTagName("input").length); 

正在打印0.我在网上发现了很多建议,说网页没有加载,但事实并非如此。我通过控制台在加载的页面上运行代码(并且我已经尝试了onload)。但这里有一个问题:JavaScript getElementsByTagName无法正常工作

第一次加载页面并在计算机上运行它时,代码正常工作并查找页面上的所有输入元素。但是,一旦我运行代码,如果我刷新页面,它将始终从那里返回0。如果我切换计算机并运行相同的代码,它将正常工作,然后停止刷新工作。

此外,它不仅限于“输入”。它发生在所有事情上(即“一”)。基本上我不能再在网页上找到任何元素,但他们肯定存在。我可以检查页面并查看所有这些页面。

这可能是什么原因造成的?当我看到我使用它时,该网站是否阻止了JavaScript?如果是这样,我能做些什么来防止这种情况发生? 这只是我学校的一个简单的调查网站。

+6

没有HTML标签叫''。你*可能*想要'document.getElementsByTagName(“input”)'。 –

+0

我的意思是输入。在这里输入错误。情况依然如此。 – Thomas

+0

@gyre代码正在从加载的网页上的控制台运行,以便链接不回答问题。此外,它在第一次正常工作,一旦代码被执行一次并且页面被刷新,它就会停止工作。 – Thomas

回答

-1

看来,标签的标题总是大写,如在所有这些例子:

https://www.w3schools.com/JSREF/met_document_getelementsbytagname.asp

所以,你的代码应该是这个样子:

console.log(document.getElementsByTagName("INPUT").length); 
+0

标签不需要大写。这就是说,资本化它并不能解决问题。我想重申,我第一次运行代码时,代码正常工作。只有刷新页面后才会停止工作。 – Thomas

+1

根据规范https://dom.spec.whatwg.org/#concept-getelementsbytagname,传递给'getElementsByTagName'的参数无论如何都转换为小写。不要使用w3schools作为参考。 –