大家好,我是编程新手,这是我在 stackoverflow 上的第一篇文章,我正在开发一个涉及从数组中随机抽取卡片的小游戏。
像这样想象一个数组:
var cards = [document.getElementById("c1"),
document.getElementById("2"),
document.getElementById("3"),
document.getElementById("4"),
];
现在我有以下代码从数组中生成随机变量:
var randomNum = Math.floor((Math.random() * cards.length));
我使用:
document.getElementById(randomNum);
选择随机变量。
现在我想选择数组中的所有其他变量并为它们提供以下代码,这样屏幕上一次只会显示一张卡片:
.style.display: "none";
这可能吗?多谢!
最佳答案
您可以通过为所有卡片元素分配一个公共(public)类来做到这一点,然后将 display
样式设置为空或 none 取决于它是否匹配:
document.getElementById('btn_rnd').addEventListener('click', function () {
// get array of elements that have the "card" class:
var cards = document.querySelectorAll('.card');
// pick a random number:
var randomNum = Math.floor((Math.random() * cards.length));
// show only that card:
for (var i = 0; i < cards.length; i++) {
cards[i].style.display = (i == randomNum ? '' : 'none');
}
});
<div id="c1" class="card">card 1</div>
<div id="c2" class="card">card 2</div>
<div id="c3" class="card">card 3</div>
<div id="c4" class="card">card 4</div>
<button id="btn_rnd">pick one randomly</button>
上面的代码在按下按钮后进行随机选择。
如果您定义了一个事件处理程序,例如单击此按钮,请确保将该 javascript 放在文档末尾附近,以确保它找到该按钮(或您将事件处理程序绑定(bind)到的任何元素)。
关于javascript - (如何)我可以选择数组中的所有元素,除了由 math.random 选择的随机元素吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34474869/