element = document.getElementById(id)
getElementById方法根據(jù)元素的id特性值返回該元素對(duì)象的引用,如果沒(méi)有該元素則返回null
MDN-getlElementIdById
在IE中getElementById返回的是:
根據(jù)聲明的id或者name特性的值返回第一個(gè)對(duì)象的引用
IE-getElementById
藏在IE中的Bug:關(guān)于document.getElementById()方法
此處使用IE下的document.all方法重新實(shí)現(xiàn)了一個(gè)getElementById
但是IE11開(kāi)始通過(guò)document.all[id]方式獲取元素這種功能已經(jīng)移除
IE11和Edge對(duì)getElementById具體實(shí)現(xiàn)沒(méi)有找到資料,不知道其是否已經(jīng)實(shí)現(xiàn)了W3C的標(biāo)準(zhǔn)
建議:
- 一個(gè)頁(yè)面元素id特性的值應(yīng)該是唯一的,并且應(yīng)該區(qū)分大小寫(xiě)
- 除了表單元素的name特性的值可以和該元素id值相同外肾胯,其余的情況應(yīng)該避免,尤其是一個(gè)非表單元素name值和一個(gè)表單元素id值相同(用來(lái)規(guī)避IE下和標(biāo)準(zhǔn)的不兼容)
- id值不應(yīng)該和mete標(biāo)簽的name值相同
- 不要給form元素設(shè)置name特性值參考