2014-01-09 61 views
1

目前,我正在嘗試使用javascript製作黑色插孔遊戲。document.write javascript黑色插孔遊戲

到目前爲止我有經銷商的卡和玩家的卡。玩家決定購買另一張牌時會出現問題。看起來,document.write在將網頁寫入字符串方面遲了一步。

while (totalP < 21) 
     { 
      r = confirm("Hit?"); 
      if (r==true) 
      { 
       document.write("<center><br>You chose to hit. </center>"); 
       p[counter] = deck[Math.floor(Math.random() * deck.length)]; 
       document.write("<center><br>" + x + "'s next card: " + p[counter] + "</center>"); 
       totalP = total(p, totalP); 
       if (totalP > 21) 
       { 
        for (var i=0; i<p.length; i++) 
        { 
         value = p[i].substring(0,p[i].length-1); 
         if (value == "A") 
         { 
          totalP = totalP - 10; 
          break; 
         } 
         else if (i == p.length - 1) 
         { 
          document.write("<center><br>You busted. Total = " + totalP + " > 21. Dealer Wins!</center>"); 
          break; 
         } 
        } 
       } 
      } 

字符串「您選擇了擊中」。出現,甚至在我按OK後。應顯示下一張卡片的文本不會顯示在網頁上,並顯示確認對話框「您選擇點擊」。再次出現,直到第二次確認或者直到​​玩家手中的牌大於21.

如果有人能夠幫助我,對此將不勝感激。在對互聯網和故障進行研究之後,我只能想到document.write與其他javascript代碼相比不可靠並且速度慢。

+3

'document.write'應該存在被禁止,顧名思義它完全覆蓋文檔在文檔初始加載後使用時的文檔。 – adeneo

+0

你一定是偶然發現了90年代中期剩下的一些教程。 'document.write'由於很多好的原因已經過時了,'innerHTML'替代品已經存在了很長一段時間了。關於'document.write'只需記住一件事:除非你確切地知道你在做什麼(在這種情況下,你可能不想使用它)。 –

回答

2

請勿使用document.write。如您所見,它完全取代了文檔的內容。

取而代之的是,您應該創建一個帶有一些HTML元素的HTML文檔,您可以在其中放置文本。

您可以通過id屬性選擇HTML節點。當你有這樣的HTML節點:

<div id="myDiv"></div> 

可以使用

var div = document.getElementById("myDiv"); 

訪問該分區在你的JavaScript代碼。然後您可以使用

div.innerHTML = "Hello World!"; 

更改該div的文本。您還可以創建這樣的新的HTML元素:

var newDiv = document.createElement("div"); 
newDiv.innerHTML = "I am a newly created div!"; 
var oldDiv = document.getElementById("myDiv"); 
oldDiv.appendChild(newDiv); 

之後你的HTML文檔看起來就像這樣:

<div id="myDiv">Hello World!<div>I am a newly created div!</div></div> 
+0

謝謝你會那麼做。我還有另外一個問題,如果我想要提醒用戶他是否想再次玩這個遊戲,那該怎麼辦。什麼是最好的方式,以便我可以抹去以前的遊戲並開始新的遊戲? – leggo

+0

@leggo如果您有其他問題,請創建一個新問題。 – Philipp