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

解決済みの質問

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

getElementByIdの戻り値がnullになります。
getElementByIdでdivタグのオブジェクトを取得したいのですが、nullとなってしまいます。
以下のコードのどこがいけないのでしょうか。
---
<div id='a'></div>

<script language="javascript">// <!--
var a_ = document.getElementById('a');
document.write(a_);
// --></script>
---

投稿日時 - 2007-07-26 17:58:12

QNo.3201738

すぐに回答ほしいです

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

さらに実験

<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]が返りました。

投稿日時 - 2007-07-27 15:22:04

0 人が「このQ&Aが役に立った」と投票しています

回答(3

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

投稿日時 - 2007-07-27 01:48:16

ひょっとしたら文書の該当箇所が読み込まれてから
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>

投稿日時 - 2007-07-27 01:46:46

ANo.1

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

投稿日時 - 2007-07-26 18:13:10

新着

あなたの愛車は今いくら?

愛車無料査定Q&A特集

ニキビケアQ&A特集

スッピンでも輝くモテ美肌に。

教えて!みんなの婚活Q&A特集

みんなの婚活体験談、秘訣がいっぱい!

お部屋探しはCHINTAI

マチから探せる新しいお部屋探し!

注目ピックアップ

人気の逸品「ちょこっとプラス」

知って美味しい特選便!毎週金曜更新。

OKWave2009年ランキング

話題のQ&Aをランキングでご紹介!

スタッフブログ

知って得する!お得な情報をお届け!

おすすめリンク