JavaScript--漏寫var卻還能使用標簽
阿新 • • 發佈:2017-10-22
get -c https 兼容 問題 gif es2017 img type
一個漏寫var帶來的問題:
這個是不標準的寫法!不建議使用
但是效果還是出來了,為什麽呢?
原因:
https://zhidao.baidu.com/question/1637589020484843580.html
為什麽可以通過id直接訪問對象,是因為所有的元素ID都相當於一個保存對象的全局變量。
通過id直接訪問對象還存在兼容問題。
建議用document.getElementById標準的形式獲取對象。
如果一個元素符合下面兩條規則中的任一條,則window對象中必須要有與之對應的一個屬性,屬性值就是這個對象。
如果一個元素擁有ID屬性,那麽ID屬性的屬性值就會成為window對象的屬性名. 如果一個元素擁有name屬性,那麽name屬性的屬性值就會成為window對象的屬性名.但這個元素的標簽名必須是: a, applet, area, embed, form, frame, frameset, iframe, img, object,其中的一個。
但是如果網頁有兩個相同ID的元素,就有點差異了:
1 <html> 2 <head> 3 <script type="text/javascript"> 4 function getInput() { 5 var mydiv = document.getElementById("div1"); 6 alert(mydiv.length);//mydiv是DispHTMLElement 7 alert(div1.length);//div1是DispHTMLElementCollection8 } 9 </script> 10 </head> 11 <body> 12 <div id="div1">123</div> 13 <div id="div1">456</div> 14 <input type="button" value="Test" onclick="getInput()" /> 15 </body> 16 </html>
JavaScript--漏寫var卻還能使用標簽