2016-12-22 10 views
3

resultTableは最初は非表示です。再生ボタンをクリックすると、ゲームが実行され、隠されたコンテンツの中にファイナルコアが表示されます。私はファイナルコアを表示する関数が必要です。現在私が持っているshowResult機能は動作していません(明らかに)最初は隠されていたコンテンツを表示します

全体が少し大きくて乱雑ですので不要な内容を削除しました。コードがまだ意味をなさないことを願っています。

<body onload="loadGame()"> 
    <div> 
     <button onclick="playButton()" id="play">Play</button> 
    </div> 
    <div id="resultTable" > 
     <span id="result"></p> 
    </div> 

    <script> 
     function loadGame(){ 
      var hideResult = document.getElementById("resultTable"); 
      hideResult.style.display = "none"; 
     } 
     function playButton(){ 
      playGame(); 
      showResult(); 
     } 
     function playGame(){ 
      /*Some code here*/ 
      document.getElementbyId("result").innerHTML = "finalscore"; 
     } 
     function showResult(){ 
      var show = document.getElementById("resultTable"); //fixed. 
      show.style.display = "block"; 
     } 
    </script> 
</body>   
+2

'getElementsByClassName()'は要素のグループ/コレクションを返します。表示したい要素が1つしかない場合は、 'ID'を対象とするか、その要素に' ID'を渡すことをお勧めします。この 'class'名を共有する複数の要素を表示したい場合は、コレクションをループする必要があります。 forループは簡単なものになります** OR **は 'document.getElementsByClassName(" resultTable ")[0];'を使います。 – NewToJS

+0

あなたが 'getElementById()'を意味するときに 'getElementsByClassName()'を使ったことがあります。 – nnnnnn

+0

申し訳ありませんが、実際はタイプミスです。その実際にgetelementsbyId。結果は同じです。ボタンをクリックしても何も出ません。 – FeCH

答えて

0

要素を見つけて、その表示をブロックまたはなしに設定する方法を変更します。 「getElementsByClassName」メソッドを使用していますが、DOMにこのようなクラス名を持つ要素はありません。

さらに、「getElementsByClassName」はDOM内のすべての要素の配列を返します。その要素にアクセスするには配列をループする必要があります。

function showResult(){ 
      document.getElementById("resultTable").style.display = "block"; 
     } 
関連する問題