2

次の(簡略化された)コードがあります。

<!DOCTYPE html SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Test</title>

        <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js" />

        <script language="javascript" type="text/javascript">
            function testFunction() {
                alert('It works');
            }
        </script>
    </head>
    <body>
        <form method="post" action="test.html" onsubmit="testFunction()">
            <input type="submit" value="Test" />
        </form>
    </body>
</html>

私のtestFunction()関数はそれ自体で正常に動作します。つまり、次の行で jQuery をインポートするまでです。

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js" />

今では失敗し、 Uncaught ReferenceError: testFunction が定義されていないことを教えてくれます

これが初心者の間違いであり、明らかな何かが欠けていることを願っています。まだ jQuery を使用しようとしていないことに注意してください。

4

4 に答える 4

7

<script>タグを完全に閉じる必要があります。

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>

変更後、jsfiddle でうまく動作します: http://jsfiddle.net/PVYM9/

また、HTML5 では、doctype を だけに短縮でき、タグのプロパティ<!DOCTYPE html>を定義する必要はありません。たとえば、jsfiddle を参照してください。type<script>

于 2012-12-18T12:40:59.050 に答える
2

正しい方法でスクリプトタグを閉じる必要があります

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>

</script>(終了タグに注意してください)

于 2012-12-18T12:41:29.557 に答える
1

有効な XML であるにもかかわらず、多くの HTML 要素 (など) はscripttextarea末尾のスラッシュ (つまり ) を使用して閉じると、ほとんどのブラウザーでうまく機能しません<element />。それらを機能させるには、開始タグと終了タグを作成する必要があります ( <element></element>)。それは XHTML にも当てはまるようです。

あなたのinputタグのような他のものは、そのままで問題なく動作します。終了タグを必要とするものもあれば、それらの要素のリストも必要としないものもある理由はわかりません。経験からそれらのいくつかを知っているだけです...

于 2012-12-18T12:47:02.770 に答える
1
   <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> // close the script tag properly

        <script type="text/javascript"> // there is no need of writing language="javascript"
            function testFunction() {
                alert('It works');
            }
        </script>

type がすでに指定されているので、language="javascript" と書く必要はありません。

于 2012-12-18T12:41:14.210 に答える