2017-04-19 55 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作爲參考。 –