0

なぜこれがエラーを返すのですか? 私の頭のタグで...

var movieArray = [
["Everything is Illuminated", "0", ""],
["The Girl Who Leapt Through Time (Toki wo kakeru shojo)", "1", "<ol><li><span class=\"bold quote_actor\">Kosuke Yoshiyama: </span><span class=\"line\">It&#039;s not that rare. Many girls do it at your age.</span></li>                                                </ol>"],
["Freedom Writers", "0", ""],
["Inside Man", "0", ""]
];

function checkAnswer(this.value) {
    if (this.value == 0) {
        alert ("Wrong answer!");
    } else {
        alert ("Correct Answer!");
    }

}

体内で...

<p><a id="0" class="btn btn-primary btn-large" value="0" onclick="checkAnswer(this.value)">Everything is Illuminated</a></p>
<p><a id="1" class="btn btn-primary btn-large" value="1" onclick="checkAnswer(this.value)">The Girl Who Leapt Through Time (Toki wo kakeru shojo)</a></p>

エラーは checkAnswer() が定義されていません。どうして?

ありがとう。

4

3 に答える 3

3

"バックスラッシュを追加して配列要素内でエスケープするのを忘れました

var movieArray = [
    ["Everything is Illuminated", "0", ""],
    ["The Girl Who Leapt Through Time (Toki wo kakeru shojo)", "1", "<ol><li><span class=\"bold quote_actor\">Kosuke Yoshiyama: </span><span class=\"line\">It&#039;s not that rare. Many girls do it at your age.</span></li>                                                </ol>"],
    ["Freedom Writers", "0", ""],
    ["Inside Man", "0", ""]
    ];

function checkAnswer(arg1) {
    if (arg1 == 0) {
        alert("Wrong answer!");
    } else {
        alert("Correct Answer!");
    }

}​

次にthis.value、定義時ではなく、checkAnswer() の呼び出し中に渡す必要があります。

于 2012-11-17T17:49:18.213 に答える
2

this.value誰もが引数リストの を見逃したのはなぜですか? などの識別子である必要がありますmyvaluecheckAnswerこれが定義されていない理由です。

ここで、コードの残りの部分については、リンクではなくグローバル オブジェクトを参照するためthis、関数で使用することはできません。また、リンクはこのプロパティをcheckAnswerサポートしていないため、値をそのまま使用するか、単にイベントに入れる必要があります。valuegetAttributeonClick

function checkAnswer(myval) {
    if (myval == 0) {
        alert ("Wrong answer!");
    } else {
        alert ("Correct Answer!");
    }
}

<p><a class="btn btn-primary btn-large" onclick="checkAnswer(0)">Everything is Illuminated</a></p>
<p><a class="btn btn-primary btn-large" onclick="checkAnswer(1)">The Girl Who Leapt Through Time (Toki wo kakeru shojo)</a></p>

id数字で始まる ID は HTML5 以外では無効であるため、属性も削除しました(それでも、古いブラウザーがまだ広く使用されているため、それらは良い考えではなく、それがなくても意味がありません)。

于 2012-11-17T17:53:24.943 に答える
0

関数の構文にエラーがあります。

エラー :

function checkAnswer(this.value) {

関数の構文はfunctionName(formalParameterName). 関数パラメーターのオブジェクトに値を渡しているため、エラーが発生します。これを に変更する必要がありますfunction checkAnswer(param)

于 2012-11-17T17:54:42.110 に答える