JavaScriptの動かないコード (初級編) DOMアクセスできない
クイズ…下記のコードが意図した動作をしないのは,どうしてですか。(制限時間1分)
<body> <script language="JavaScript"> // "test"と表示 alert( my_p.innerHTML ); </script> <p id="my_p"> test </p> </body>
発生する不具合と原因
script要素中のコードが実行されるタイミングは,ブラウザがDOMツリーを構築する作業の真っ最中。
従って,scriptタグの中に地で書いたコードが実行される際には,それより後ろの p 要素がまだ存在しないので,DOMアクセスすることはできない。
試しに,上記のコード中で
alert( document.body.innerHTML );
を実行してみれば,
直後からまでしか表示されない事を確認できる。参照:
[JavaScript] とてもシンプルに自分自身が属する script 要素を取得
http://d.hatena.ne.jp/amachang/200612...