document.write javascript黑杰克游戏

时间:2014-01-09 21:14:12

标签: javascript

目前,我正在尝试使用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代码相比不可靠且速度慢。

1 个答案:

答案 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>