目前,我正在尝试使用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;
}
}
}
}
字符串“你选择了点击”。出现甚至在我按下确定之后。应该显示下一张卡片的文本没有显示在网页和确认对话框“你选择点击”。再次出现,直到第二次确定或直到手中的牌手大于21。
如果有人可以帮助我,我将不胜感激。在研究了互联网并自行进行故障排除后,我只能想到document.write与其他javascript代码相比不可靠且速度慢。
答案 0 :(得分:2)
不要使用document.write。如您所见,它完全取代了文档的内容。
除此之外,您应该创建一个HTML文档,其中包含一些HTML元素,您可以在其中放置文本。
您可以按ID属性选择HTML节点。如果您有这样的HTML节点:
<div id="myDiv"></div>
你可以使用
var div = document.getElementById("myDiv");
在您的Javascript代码中访问该div。然后你可以使用
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>