我正在处理我的Hangman游戏,我有一个令人沮丧的问题,一旦我点击开始按钮开始游戏,破折号打印到div不仅一次,但很多次后(一旦猜到的话已经输入)。我试图让破折号只打印一次到div。例如,对于单词dog,我想---打印,按下开始后不再有破折号。你能指出我正确的方向吗?这是jsfiddle:https://jsfiddle.net/jfn46wjm/
以下是它附加到页面的javascript代码:
//loop for underscores
//creates under scores for each letter;
for (i = 0; i < input.length; i++) {
placeholder += "-";
}
//append dashes to the page
var grab = document.getElementById("test");
var secret = document.createElement("p");
secret.id = "guessp";
var textn = document.createTextNode(placeholder);
secret.appendChild(textn);
grab.appendChild(secret);
答案 0 :(得分:0)
这部分:
var grab = document.getElementById("test");
var secret = document.createElement("p");
secret.id = "guessp";
var textn = document.createTextNode(placeholder);
secret.appendChild(textn);
grab.appendChild(secret);
表示您将占位符(“---”)插入<div id="test"/>
。
在您调用的checkInput
方法中:
var spguess = document.getElementById("guessp");
因为您的HTML代码中包含:
<p id="guessp"></p>
<div id="test">
</div>
然后,您的checkInput
方法引用第一个<p/>
元素,而start
时,您将新<p id="guessp"/>
引用到<div id="test">
。然后你得到这个错误。
答案 1 :(得分:0)
检查Latest jsFiddle
我添加了一个标志printed
并在打印更多破折号之前检查它是否为真。
这是更新后的链接。请检查并查看它是否正常工作。