0

JavaScript環境を初めて使用します。タグは、ドキュメントのまたはタグの<script> </script>いずれかに配置できることを読みました。しかし、出力の下にタグを配置すると、出力が異なります。コードを確認してください:-<head> </head><body></body><script><head></head>

<!DOCTYPE html>
<html>
<head>
<script>
function myFunction(a,b)
{
return a*b;
}

document.getElementById("demo").innerHTML=myFunction(4,3);
</script>
</head>
<body>

<p>This example calls a function which perfoms a calculation, and returns the result:</p>

<p id="demo"></p>

</body>
</html>

出力:-この例では、計算を実行する関数を呼び出し、結果を返します。

<script></script>が下に配置されているのに対し<body></body>、私は別の出力を取得します。コードと次の出力を見つけてください:-

<!DOCTYPE html>
<html>
<body>

<p>This example calls a function which perfoms a calculation, and returns the result:</p>

<p id="demo"></p>

<script>
function myFunction(a,b)
{
return a*b;
}

document.getElementById("demo").innerHTML=myFunction(4,3);
</script>

</body>
</html>

出力:-

この例では、計算を実行する関数を呼び出し、結果を返します。

12

どんな助けでも大歓迎です。

4

3 に答える 3

3

次のコード行が実行されると、指定された ID を持つ要素を DOM で検索します。

document.getElementById("demo").innerHTML=myFunction(4,3);

そのコードが にある場合head、その要素はまだ存在しないため、コードは失敗します。コードがbody(問題の要素の) にある場合、それは明らかに存在し、見つけることができます。

に保持したい場合は、スクリプトで何らかの説明の DOM 対応イベント ハンドラーを使用できますhead。ただし、「ベスト プラクティス」では、スクリプトをbody.

あなたの場合、これはスクリプトの場所に応じて表示される効果です。

<html>
    <head>
        <!-- Script here fails -->
    </head>
    <body>
        <!--- Script here fails --->
        <p>This example calls a function...</p>
        <!-- Script here fails -->
        <p id="demo"></p>
        <!-- Script here works! --->
    </body>
</html>

ただし、呼び出される前に何もしないため、関数宣言はどこにでもあることに注意してください。呼び出しは、要素が DOM に存在した後に実行する必要がある唯一の部分です。

于 2013-01-28T10:36:29.930 に答える
1

Javascriptを呼び出すための3つのシンプルなロジックを覚えておいてください。

1)タグ内のjavascriptの呼び出し<head> ... </head>は、別のライブラリを初期化/現在のページにインポートするためのものです。

2)タグ間のjavascriptの呼び出し<body> ... </body>は、DOM要素を操作することです。ページコンテンツがロードされているときにコードが実行されるためです。

ベストプラクティスとして、DOMイベントはページの下部にコーディングされています。

3)最善の解決策は、「他の.JSファイルでJAVASCRIPTコードを宣言し、どこでもHTMLファイルに呼び出すことです。コードを使用するとうまくいきます <SCRIPT SRC="path" ></SCRIPT>

于 2013-01-28T10:48:23.497 に答える
1

Element デモはdocument.getElementById("demo").innerHTML=myFunction(4,3);、宣言の上にあるため、呼び出されたときに読み込まれませんでした。

onload次のように、本体の -event で呼び出しをラップすることで、適切に実行できます。

<body onload="document.getElementById('demo').innerHTML=myFunction(4,3);">

関数宣言はhead. このようにして、ページが完全に読み込まれると、関数が呼び出されます。ここでは最も良いスタイルではありません (長い呼び出しのため、別の関数にラップしてコードを読みやすくすることができます)。

于 2013-01-28T10:40:31.327 に答える