文章目录
- 1. 演示效果
- 2. 分析思路
- 3. 代码实现
- 3.1. 方式一
- 3.2. 方式二
1. 演示效果
2. 分析思路
- 获取玩家的出拳(获取按钮的标签体)
- 获取电脑的出拳(随机数)
- 比较二者的出拳,将比较的结果设置到对应的 span 标签中
3. 代码实现
3.1. 方式一
将点击事件进行动态绑定。
const btns = document.querySelectorAll("button");
//获取需要设置的元素对象
const me = document.querySelector(".me");
const robot = document.querySelector(".robot");
const result = document.querySelector(".result");
//遍历按钮对象添加事件
btns.forEach((item) => {
//添加事件
item.addEventListener("click", function () {
//获取玩家的出拳(获取按钮的标签体)
let player = item.innerHTML;
me.innerHTML = player; //将玩家的出拳设置进去
//获取电脑的出拳(随机数)
const arr = ["石头", "剪刀", "布"];
let cmp = arr[Math.floor(Math.random() * arr.length)];
//console.log(cmp)
robot.innerHTML = cmp; //将电脑的出拳设置进去
//比较出拳的结果
if (
(player == "石头" && cmp == "剪刀") ||
(player == "剪刀" && cmp == "布") ||
(player == "布" && cmp == "石头")
) {
result.innerHTML = "玩家获胜";
} else if (player == cmp) {
result.innerHTML = "平局";
} else {
result.innerHTML = "电脑获胜";
}
});
});
3.2. 方式二
将点击事件进行行内绑定。
<script>
// 获取元素
const buttons = document.querySelectorAll("button");
const me = document.querySelector(".me");
const robot = document.querySelector(".robot");
const result = document.querySelector(".result");
// 遍历按钮对象添加点击事件
buttons.forEach((btn) => {
btn.addEventListener("click", function () {
// 获取玩家的出拳
const meChoice = this.innerText;
me.innerText = meChoice;
// 电脑出拳
let arr = ["剪刀", "石头", "布"];
// 随机获得一个出拳
let robotChoice = arr[Math.floor(Math.random() * arr.length)];
robot.innerText = robotChoice;
// 判断结果
if (
(meChoice == "剪刀" && robotChoice == "布") ||
(meChoice == "石头" && robotChoice == "剪刀") ||
(meChoice == "布" && robotChoice == "石头")
) {
result.innerText = "玩家获胜";
} else if (meChoice == robotChoice) {
result.innerText = "平局";
} else {
result.innerText = "电脑获胜";
}
});
});
</script>