2016-06-15 23 views
1

私はこの単純なHTMLファイルを持っている:地球上で "Y" はnullですなぜなぜDOM要素がnullですか?

y=document.getElementById("id"); 
y.style.color="green"; 

<!DOCTYPE html> 
<html> 
<head> 
    <script src='test.js'></script> 
</head> 

<body> 
    <p>I am a paragraph tag</p> 
    <h1 >I am an h1 tag</h1> 
    <div id="id"> I am a div tag</div> 
</body> 

そして、この簡単なスクリプト(test.jsを)?私は取得していますエラーが

TypeError: y is null 

である私は、これは私が欠けている単純な構文のことであると確信しているが、私は私の人生のためにそれを把握することはできません!助けて!

ポストスクリプト:htmlファイルとtest.jsファイルは同じフォルダにあります。

+0

この質問は1日に数回尋ねられます。将来、質問する前に質問を調べてみてください:) – 4castle

+0

var構文を使用して変数を宣言する必要があります。 var y = document ... "最後に、要素がdomにロードされる前にjavascriptが実行されていますが、javacriptを関数(){})にラップして修正することができます。 –

+0

@ zeros-and-それをローカル変数にするもの –

答えて

3

あなたはすべての要素が作成されるときに、文書の末尾にスクリプトを配置する必要があります。

<!DOCTYPE html> 
<html> 
<head> 

</head> 

<body> 
    <p>I am a paragraph tag</p> 
    <h1 >I am an h1 tag</h1> 
    <div id="id"> I am a div tag</div> 
</body> 
<script src='test.js'></script> 
+0

私はイベントハンドラを持っているので、ドキュメントがロードされるとすぐには実行されません。 –

+0

正しい、あなたが 'window.onload'を使用することができます上に置いてほしい場合 – CMPS

1

あなたはjQueryのを使用している場合は、.ready $(文書)を使用してスクリプトの内容をラップすることができますまたはプレーンなjavascriptを使用している場合はwindow.onload。

+1

OPが[タグ:jQuery]を使用しているとは思わない – andlrc

+1

@Hector BarbossaこれはStackoverflowでの単一のLARGS + ESTの問題です決めるあなたのような人々です、 "それを落として、JQを試してくださいuery! "質問が* jQuery *でタグ付けされていない場合、* jQuery *で答えられない。 –

+0

申し訳ありません、私の悪い..私はタグを以前にチェックしていないが、私はまた、プレーンなjavascriptソリューションを与えている –

関連する問題