document.getElementById('id of div that definately exists')
はnullを返します。
Onloadイベントについて心配する必要がないことを確認するために、もともとjavascriptを最後にロードしました。また、onloadイベントを使用してみました。とても不気味です。どんなアイデアや助けも大歓迎です。
原因は次のとおりです。
コードを投稿してください。
また、ページでjsを実行する方法にも注意してください。たとえば、次のような場合:
(function(window, document, undefined){
var foo = document.getElementById("foo");
console.log(foo);
})(window, document, undefined);
ロードされる前にドキュメントを呼び出すため、これはnullを返します。
より良いオプション..
(function(window, document, undefined){
// code that should be taken care of right away
window.onload = init;
function init(){
// the code to be called when the dom has loaded
// #document has its nodes
}
})(window, document, undefined);
document.getElementById
が機能しない多くの理由が考えられます
無効なIDがあります
IDトークンとNAMEトークンは文字([A-Za-z])で始まる必要があり、その後に任意の数の文字、数字([0-9])、ハイフン( "-")、アンダースコア( "_")を続けることができます、コロン( ":")、およびピリオド( "。")。 (リソース: HTMLのid属性の有効な値は何ですか? )
ヘッダーで<meta>
名として既に使用しているID(著作権、著者など)を使用しましたが、奇妙に見えますが、私には起こりました。IEを使用している場合は、リソース: http://www.phpied.com/getelementbyid-description-in-ie/ )
フレームまたはiframe内の要素をターゲットにしている。この場合、iframeが親の同じドメイン内のページをロードする場合、要素を探す前にcontentdocument
をターゲットにする必要があります(リソース: フレーム内の特定のIDを呼び出す )
ノードがDOMに効果的にロードされていない場合、または単純なつづりの間違いである場合、単に要素を探しているだけです。
同じIDを2回以上使用したとは思えません。その場合、document.getElementById
は少なくとも最初の要素を返す必要があります