将字符串/结果从JS发送到HTML页面

时间:2014-04-16 13:57:48

标签: javascript html css

我正在研究HTML + JS的简单摇滚,纸张,剪刀游戏。

以下是完整代码(CSS,JS,HTML):http://jsfiddle.net/fJw4R/ (太久了,我想过去)。在这里,您可以看到图片:http://shinebrightmedia.se/rps/rockpaperscissors.html

正如您所看到的,.math模块可以工作,当您选择摇滚,纸张或剪刀时,计算机会随机选择一个选项。

但是,我现在希望在计算机/显示器下面有一个文本字符串,我想知道最简单的方法是什么。我要它要么说你赢了!或者你输了!

我开始使用这样的函数:

function theWinnerIs(userChoice, computerChoice) {

    if (userChoice === computerChoice ) {
        return 'No winner, it is a draw';
    }

    if ((userChoice === 'rock') && (computerChoice === 'scissor')) {
        return 'human';
    }
    if ((userChoice === 'rock') && (computerChoice === 'paper')) {
        return 'computer';
    }

    if ((userChoice === 'paper') && (computerChoice === 'scissor')) {
        return 'computer';
    }
    if ((userChoice === 'paper') && (computerChoice === 'rock')) {
        return 'human';
    }

    if ((userChoice === 'scissor') && (computerChoice === 'rock')) {
        return 'computer';
    }
    if ((userChoice === 'scissor') && (computerChoice === 'paper')) {
        return 'human';
    }

}

将返回值发送到索引文件的最简单方法是什么?即。你赢了!或者你输了!

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

无需使用if s的这个块 - 这是非常紧凑的替代方案:

var choices = { rock: -1, paper: 0, scissors: 1 };
var score   = choices[userChoice] - choices[computerChoice];
score       = score - (score/2|0) * 3;

...如果用户输了一轮就会给你-1,如果他们赢了则会1,如果是抽奖,我会0

现在您可以通过填充innerHTML属性将输出发送到任何准备好的容器:

var results = {
  '-1': 'YOU LOSE',
   '1': 'YOU WIN',
   '0': 'IT\'S A DRAW'   
};
var resultContainer = document.getElementById('result');
resultContainer.innerHTML = results[score];

在这里a small demo来说明这两个概念。

答案 1 :(得分:0)

根据我的理解,您希望根据您的" theWinnerIs"的结果显示一些文字。方法。我建议你在你的页面上创建一个div并用JavaScript设置它的内容。然而,有很多方法可以实现你的目标。

因此,您希望在页面中添加div,例如<div id="output"></div>。然后,您可以使用以下

更新此处的文本
var outputElement = document.getElementById("output");
outputElement.innerHTML = theWinnerIs(userChoice, computerChoice);

虽然raina77ow的解决方案更加出色,但这里提供了updated version的透视代码。