我一直在嘗試使用document.getElementByID
從外部JS文件的HTML文件中提取信息,但似乎沒有工作。如果document.getElementByID
僅與HTML文件內聯,或者它可以在外部JS文件上正常工作,那麼document.getElementByID
才能正常工作嗎? JS文件在HTML文檔中被正確調用,因爲其他函數正在工作。document.getElementByID是外部還是內聯?
回答
是否唯一的document.getElementById工作,如果它是內嵌在HTML文件
號
可以在一個外部JS文件正常工作?
是的。
在DOM準備就緒之前,您可能會調用document.getElementById()
。
我在DOM準備好之前調用它。謝謝! – 2012-04-11 05:43:53
如果您將腳本放在<head>
中,那麼主體尚未加載,因此元素不在那裏。
通過使用jQuery的函數推遲腳本,或將腳本放在主體的末尾。
首先,確保您使用的是document.getElementById("xxx")
,而不是document.getElementByID("xxx")
(注意最後的大寫差異)。你的問題是指document.getElementByID("xxx")
,所以這可能是問題在這裏。
其次,您必須確保在瀏覽器解析了相關DOM項後,才能執行此功能。如果您將document.getElementById
放入裝入<head>
部分的外部JS文件中,並在加載後立即執行,則該DOM尚未準備就緒。
您有幾種選擇:
1)放置外部JS文件<script>
標籤在身體的結尾,</body>
標籤之前。這不僅會更快地加載/顯示您的頁面,而且會保證在該JS文件中的任何內容都可以運行之前解析DOM。
<body>
Your HTML here
<script type="text/javascript" src="myscript.js"></script>
</body>
2)既然你有jQuery的,把你的立即執行代碼$(document).ready(fn)
塊的內部,從而jQuery將忍住執行,直到DOM已準備就緒。如果你這樣做,那麼你可以把你的代碼放在任何地方(包括<head>
部分)。
$(document).ready(function() {
// put your page initialization code here
});
3)把你的代碼,任何你想要的,但沒有任何的它立即執行。相反,把在intialization功能,所有的初始化代碼(我們稱之爲您從調用myPageInit()
:
$(document).ready(myPageInit);
4)把你的代碼,你想要的任何地方,但沒有任何的它立即執行。相反,把你所有的初始化代碼在intialization功能(我們稱之爲你的的</body>
標籤與在此之前直接從腳本調用myPageInit()
:
<script type="text/javascript">myPageInit()</script>
我有兩個問題給你,先生: 1.爲什麼會要求使用'getElementById'如果他有jQuery? 2.爲什麼不'window.onload = function(){// Todo};'? – Dementic 2012-08-25 23:46:39
'getElementById()'實際上比jQuery快一點,如果你想要的只是一個DOM元素。我不知道爲什麼OP不使用jQuery。至於你的第二個問題,'window.onload()'在所有圖像加載後發生。 'DOM(document).ready()'發生在DOM準備就緒之前所有的圖像加載完畢,所以它會更快發生,最好是如果你不需要等待所有圖像完成加載。 – jfriend00 2012-08-26 00:00:12
jquery的id選擇器正是'document.getElementById',並且爲什麼不使用jquery,好吧,我和我的同事正在從一個模板構建網站,他使用jquery,而我不這樣做。他的網站代碼大約30kb(不包括jquery依賴),而我的總共15kb。 – Dementic 2012-08-26 00:31:03
我的建議是這樣:
window.onload = function() {
// document.getElementById() code here
}
那麼你document.getElementById()
不會執行,直到每個頁面上的元素已滿載。
- 1. Nginx是內部還是外部Docker
- 2. 如何確定Delaunay三角形是內部還是外部?
- 3. ASP.Net檢查用戶是內部的還是外部的
- 4. 檢查一個鏈接是內部的還是外部的
- 5. 尋找類方法是外部還是內部調用
- 6. 使用jQuery檢查鏈接是內部的還是外部的
- 7. 外部JavaScript - 身體還是頭部?
- 8. AS3預加載器內部還是外部?
- 9. SVG <script>元素:內部還是外部?
- 10. C++靜態函數:放在課堂的內部還是外部?
- 11. API設計:分離內部還是外部功能?
- 12. Java 8 stream get()on可選 - 在方法內部還是外部?
- 13. 它是聯盟,還是或?
- 14. React.js - ReactDOM.render還是可以使用內聯?
- 15. 確定是使用內部還是外部的Android應用程序
- 16. 如何測試一個點是在三角形的內部還是外部?
- 17. 「I/O設備請求」是外部中斷還是內部異常?
- 18. Flash繪圖API中的邊框線是在內部還是外部繪製的?
- 19. 如何找出兩個矢量之間的角度是外部還是內部?
- 20. SQL Server性能 - 子選擇還是內部聯接?
- 21. 局部變量:Pascal還是Camel外殼?
- 22. SQL:加入三個表 - 內部/外部聯合外部聯接?
- 23. PHP推薦:內聯,內部或外部
- 24. 如何識別網絡接口是LAN還是Wifi還是外部
- 25. 可繪製內存,是否有更好的APK內部資源,外部APK還是內存相同?
- 26. 如何知道水龍頭是在視圖內還是在外部很快
- 27. H1,H2,H3,H4標籤是塊還是內聯元素?
- 28. <marquee>是塊元素還是內聯元素?
- 29. 內聯網應用最佳實踐? ApplicationPoolIdentity還是不是?
- 30. 類方法可以是內聯方式還是靜態方式?
它應該是雙向的工作..你試圖找到使用jQuery代替的document.getElementById,看看是否有任何區別的對象? – pollirrata 2012-04-06 19:05:36
請確保您使用getElementById(注意小寫的d結尾),而不是getElementByID。 – j08691 2012-04-06 19:07:48
發佈你的HTML以及你如何調用你的js文件 – DG3 2012-04-06 19:09:54