* getElementById method (DOM 2+ Document 界面) [1] Method [CODE[[VAR[([CODE[(DOMi)[[[Element]]]])]] := [VAR(DOMi)[[[Document]]]].[CODE(DOMm)[getElementById]] ([VAR[[[[CODE(DOMi)[[[DOMString]]]]) [CODE(DOMp)[elementId]]]])]]]] を使うと、文書内で[[識別子属性]] [VAR(DOMp)[elementId]] を持つ[[要素節]]を得ることができます。 [2] [[妥当]]でないために同じ識別子を持つ要素が複数あるときの動作は未定義です。 該当するものがないときや、識別子属性を実装が知らない時は [CODE(DOM)[[[null]]]] が返ります。 例外はありません。 [4] 文書木から削除されているとか [CODE(DOMi)[[[Entity]]]] 木に存在している識別子つき要素節点とは一致するのでしょうかね? [3] 仕様書: - [[DOM水準1]] -- HTML モジュール [CODE(DOMi)[[[HTMLDocument]]]] 界面 [CODE(DOMm)[getElementById]] メソッド - [[DOM水準2]] -- 中核モジュール [CODE(DOMi)[[[Document]]]] 界面 [CODE(DOMm)[getElementById]] メソッド - [[DOM水準3]] -- 中核モジュール [CODE(DOMi)[[[Document]]]] 界面 [CODE(DOMm)[getElementById]] メソッド -- XPath モジュール適合性 [8] [CITE@en[Re: Selectors API: Multiple elements with the same ID from Boris Zbarsky on 2007-01-28 (public-webapi@w3.org from January 2007)]] ([[Boris Zbarsky (bzbarsky@mit.edu)]] 著, [CODE[2007-01-28 13:54:06 +09:00]] 版) ([[名無しさん]]) [9] [CITE[subtech - MisuzillaSubtechImpl - document.getElementById('name');]] ([CODE[2007-05-26 11:40:20 +09:00]] 版) ([[名無しさん]] [WEAK[2007-05-26 02:41:40 +00:00]]) [10] [[DOM水準3]]によると[[識別子属性]]かどうかの判断に [CODE(DOMa)@en[[[isId]]]] を使うことが[[実装]]には期待されています。 ;; 期待だけかよ。。。 [12] [CITE@en[Beware of id and name attribute mixups when using getElementById in Internet Explorer | 456 Berea Street]] ([[Roger Johansson]] 著, [TIME[2008-03-16 11:16:02 +09:00]] 版) ([[名無しさん]]) [13] [CITE[Bug 6006 - document.getElementById does not behave in the same way as Internet Explorer (Win)]] ([TIME[2008-11-29 18:07:10 +09:00]] 版) [14] [CITE[Opera の id, name 問題 - IT戦記]] ([TIME[2009-02-02 02:01:48 +09:00]] 版) * 関連 - [CODE(DOMm)@en[[[getElementsByName]]]] - [CODE(JS)@en[[[document.all]]]] - [CODE(DOMm)@en[[[getElementsByTagName]]]] - [CODE(DOMm)@en[[[getElementsByClassName]]]] - [CODE(DOMm)@en[[[querySelector]]]], [CODE(DOMm)@en[[[querySelectorAll]]]]