js直接經過id操做DOM對象是不規範的

這個功能來源於 IE,後來firefox 和 chrome 也支持了。如今是 w3c 非正式的標準,不建議使用。
這個能夠是id,input的name等,有必定的限制,瀏覽器兼容問題。
是不規範操做。html

首先要知道什麼是Browser對象
BOM
:Browser Object Model,即瀏覽器對象模型,提供了獨立於內容的、能夠與瀏覽器窗口進行互動的對象結構。
Browser對象:指BOM提供的多個對象,包括:Window、Navigator、Screen、History、Location等。
其中Window對象爲頂層對象,其餘對象都爲Window對象的子對象。chrome

若是在HTML文檔中用id屬性爲元素命名,而且若是Window對象沒有此名字的屬性,Window對象會賦予一個屬性,它的名字是id屬性的值,而他們的值指向表示文檔元素的HTMLElement對象。在客戶端JavaScript中,Window對象是以全局對象的形式存在於做用域鏈的最上層,這就意味着在HTML文檔中使用的id屬性會成爲能夠被腳本訪問的全局變量。若是文檔包含一個<div id="okay"></div>元素,能夠經過全局變量okay來引用此元素。可是,有一個重要警告:若是Window對象已經具備此名字的屬性,這就不會發生。好比,id是「history」、「location」、或「navigator」的元素,就不會以全局的形式出現,由於這些ID已經佔用了。一樣,若是HTML文檔包含一個id爲「x」的元素,而且還在代碼中聲明並賦值給全局變量x,那麼顯式聲明的變量會隱藏隱式的元素變量。若是腳本中的變量聲明出如今命名元素以前,那這個變量的存在就會阻止元素獲取它的window屬性。而若是腳本中的變量聲明出如今命名元素以後,那麼變量的顯式賦值會覆蓋該屬性的隱式值。
能夠參考JavaScript權威指南14.7章【做爲Window對象屬性的文檔元素】瀏覽器

http://www.runoob.com/jsref/obj-window.htmlfirefox

相關文章
相關標籤/搜索