IE6 IE7 IE8(Q) 中的 getElementById 方法能以 name 屬性為參數(shù)

字號:


    標(biāo)準(zhǔn)參考
    getElementById 是 Document 接口提供的方法,用于獲取一個元素,該方法傳入的參數(shù)應(yīng)該是目標(biāo)元素的 id 屬性的值:
    Element getElementById(in DOMString elementId);
    關(guān)于 getElementById 方法的詳細(xì)信息,請參考 DOM-1-HTML Interface HTMLDocument 及 DOM-2-Core Interface Document 中的相關(guān)內(nèi)容。
    問題描述
    在 IE6 IE7 IE8(Q) 中,支持以 document.getElementById(elementName) 的方式獲取 name 屬性值為 elementName 的 A APPLET BUTTON FORM IFRAME IMG INPUT MAP META OBJECT EMBED SELECT TEXTAREA 元素。
    造成的影響
    該問題將導(dǎo)致在某些瀏覽器內(nèi)無法獲取到目標(biāo)元素。
    受影響的瀏覽器
    IE6 IE7 IE8(Q)
    問題分析
    分析以下代碼:
    <body>
    <div id="output"></div>
    <script>
    var $=function(id){return document.getElementById(id);};
    var tags=['A','ABBR','ACRONYM','ADDRESS','APPLET','AREA','B','BDO','BIG','BLOCKQUOTE','BR','BUTTON','CAPTION','CENTER','CITE','CODE','COL','COLGROUP','DD','DEL','DIR','DIV','DFN','DL','DT','EM','FIELDSET','FONT','FORM','FRAME','FRAMESET','H1','H6','HR','I','IFRAME','IMG','INPUT','INS','ISINDEX','KBD','LABEL','LEGEND','LI','LINK','MAP','MENU','META','NOFRAMES','NOSCRIPT','OBJECT','OL','OPTGROUP','OPTION','EMBED','P','PRE','Q','S','SAMP','SCRIPT','SELECT','SMALL','SPAN','STRIKE','STRONG','STYLE','SUB','SUP','TABLE','TBODY','TD','TEXTAREA','TFOOT','TH','THEAD','TITLE','TR','TT','U','UL','VAR','XMP'] ;
    for(i=0;i<tags.length;i++){
    var tag=tags[i];
    document.writeln('<'+tag+' name="name_'+tag+'"></'+tag+'>');
    $('output').innerHTML+=$('name_'+tag)?tag+" ":"";
    }
    </script>
    </body>
    以上代碼在頁面中順次創(chuàng)建各元素,并嘗試以 document.getElementById(elementName) 的方式來獲取各元素。
    在各瀏覽器輸出如下:
    IE6 IE7 IE8(Q)其他瀏覽器
    A APPLET BUTTON FORM IFRAME IMG INPUT MAP META OBJECT EMBED SELECT TEXTAREA(無)
    可見:在 IE6 IE7 IE8(Q) 中,支持以 document.getElementById(elementName) 的方式獲取 A APPLET BUTTON FORM IFRAME IMG INPUT MAP OBJECT EMBED SELECT TEXTAREA 元素,而其他瀏覽器的任何元素均不支持該方式。
    解決方案
    在使用 document.getElementById 方法獲取頁面元素時,應(yīng)傳入元素的 id 屬性值,而不能使用元素的 name 屬性值。
    參見
    知識庫
    ...
    相關(guān)問題
    ...
    測試環(huán)境
    操作系統(tǒng)版本:Windows 7 Ultimate build 7600
    瀏覽器版本:IE6
    IE7
    IE8
    Firefox 3.6
    Chrome 4.0.302.3 dev
    Safari 4.0.4
    Opera 10.51
    測試頁面:...
    本文更新時間: