• ベストアンサー

getElementByIdの戻り値がnullになります。

getElementByIdでdivタグのオブジェクトを取得したいのですが、nullとなってしまいます。 以下のコードのどこがいけないのでしょうか。 --- <div id='a'></div> <script language="javascript">// <!-- var a_ = document.getElementById('a'); document.write(a_); // --></script> ---

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

さらに実験 <div id='a'></div> <div></div> <script type"text/javascript">// <!-- var a_ = document.getElementById('a'); document.write(a_); // --></script> これはnullですが <div id='a'></div> <div>あ</div> <script type"text/javascript">// <!-- var a_ = document.getElementById('a'); document.write(a_); // --></script> これは[object]や[HTMLdivElement]が返りました。

すると、全ての回答が全文表示されます。

その他の回答 (3)

回答No.3

訂正 【誤】文字列div 【正】divの子の文字列(テキストノード)

すると、全ての回答が全文表示されます。
回答No.2

ひょっとしたら文書の該当箇所が読み込まれてから documentに反映されるまでに時間がかかっているのかもしれません。 当方による質問文掲示ソースの検証では IE 7およびMinefield(Firefox 3.0a7pre)では nullが吐かれたのに対し, Opera 9.22,Safariは[object HTMLDivElement]を返したからです。 DOMがきちんと読み込まれたであろうタイミングで下のソースの文字列divをクリックした場合, MinefieldやIEもきちんと[object]や[HTMLParagraphElement]を返したため, 空であるときに必ずnullが帰るかというとそうわけでもないようです。 (ただ、確かに文字列が子として含まれるときは該当の現象は発生しませんでした) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <title>Q3201738 テストケース1</title> <style type="text/css"> </style> <script type="text/javascript"> function hoge(){ alert(document.getElementById("hoge")); } </script> </head> <body> <div onclick="hoge();">hoge</div> <p id="hoge" /> </body> </html>

すると、全ての回答が全文表示されます。
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

divの中身が空の場合はnullを返すみたいですよ

すると、全ての回答が全文表示されます。

関連するQ&A