javascript - (如何)我可以选择数组中的所有元素,除了由 math.random 选择的随机元素吗?

标签 javascript css select display

大家好,我是编程新手,这是我在 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/

相关文章:

Javascript——仅获取正则表达式匹配的可变部分

javascript - 如何使用 webpack 准备 React 应用程序

javascript - 无法从由 Jquery 加载到另一个 html 的 HTML 中定位类

php - 如何在 Php Mysql 中使用 while 循环从下拉菜单中选择一个项目

javascript - jQuery DataTables 错误 - TypeError : Cannot read property 'fnInit' of undefined

javascript - 按钮单击事件后更新 UpdatePanel

jquery - css div 背景变得更左

jquery - 在 jQuery 中取消选择 <select> 的最佳方法?

sql - Oracle - 日期时间条件

javascript - 无法在 Controller 中测试 .success 函数