2017-07-04 11 views
0

私はこの数学のプロジェクトをサポートしています。基本的に私は4つのボックスを作成し、正解を1つ入力しました。正しい答えをクリックすると、ifステートメントは実行されません。常に間違っていると表示されます。JavascriptのinnerHTMLメソッドが間違った値を返す

私はスニペットを含みます。誰かが何かを間違って見ることができれば、私は応答に感謝します。

ボックス1で正しく動作するかどうか試していますが、正解がであっても、正しい答えが4つのボックスのうちの1つに入力されますが、常に間違っていると表示されます。代わりに==で2つの値を比較する

document.getElementById("box1").onclick = function() { 
    if (playing == true) { 
    if (this.innerHTML == correctAnswer) { 
     score++; 
     document.getElementById("scorevalue").innerHTML = score; 
     hide("wrong"); 
     show("correct"); 
     setTimeout(function() { 
     hide("correct"); 
     }, 1000); 
    } else { 
     hide("correct"); 
     show("wrong"); 
     setTimeout(function() { 
     hide("wrong"); 
     }, 1000); 
    } 
    } 
} 
+1

ようこそStackOverflow!私たちがあなたのお手伝いをするためには、あなたの質問を更新して**関連するすべてのコード**を[**最小で、完全で、検証可能な例**]で表示することができますか(http://stackoverflow.com/あなたの 'hide()'と 'show()'関数を含め、関連するHTMLとCSSを含んでいますか?それがなければこの問題を再現するのは少し難しいです。詳細については、[**よくある質問をどうやるか**](http://stackoverflow.com/help/how-to-ask)に関するヘルプ記事を参照して、サイトの[**ツアー**](http://stackoverflow.com/tour):) –

+1

JSFiddleの例を提供して "debugg"できますか? –

+0

まず、 'correctAnswer'をチェックする' if'の直前で 'console.log(this.innerHTML);を実行することで、' innerHTML'が実際にどのようなものかをチェックします。インナーHTMLが何であるかわからないので、私たちはあなたを助けることができません。 – Clonkex

答えて

0

、あなたのif文で===を試してみてください。 例:if (playing === true) {

+1

これは正解ではありません。もし 'if'が常にtrueを返すなら、OPは彼のプロジェクトが常に正しいと言っていたでしょう。 – Clonkex

0

これは、HTMLと、タグの設定方法に関連している可能性があります。それは空のスペースとして改行を考慮し、いくつかの探検家で次に

<div id="box1"> 
    answer 
</div> 

、特にChromeとFirefoxの:box1はdiv要素がある場合たとえば、その後、あなたのコードは次のようになります。

ので、var correctAnswer = "answer";

とあなたがそうのようbox1.innerHTMLcorrectAnswerを比較する場合:

if (correctAnswer == box1.innerHTML) 

その後、あなたは常に返さfalseを取得します。問題を解決するために

、そのようなあなたのHTMLを変更:

<div id="box1">answer</div> 

は、基本的に改行を削除します。

他のすべては問題ありません。

関連する問題