JavaScript实现班级抽签小程序

我会详细讲解“JavaScript实现班级抽签小程序”的完整攻略,以下是步骤:

1. 设计页面

在HTML文件中,先设计出一个包含班级所有学生名字的列表,以及一个按钮用于触发抽签事件。示例代码如下:

<body>
    <h1>班级抽签</h1>
    <h2>名单</h2>
    <ul id="nameList">
        <li>张三</li>
        <li>李四</li>
        <li>王五</li>
        <!-- 其余名字省略 -->
    </ul>
    <button id="drawButton" onclick="draw()">抽签</button>
    <p id="result"></p>
</body>

2. 编写JavaScript逻辑

  1. 获取名单列表

使用querySelectorAll()方法获取名单列表,并将结果存储在一个数组中。示例代码如下:

var names = document.querySelectorAll('#nameList li');
  1. 抽签事件

在点击抽签按钮时,随机从名单列表中选取一名学生。使用Math.random()方法生成0到1之间的随机数,乘以名单长度,再向下取整获取一个随机下标,然后从名单列表中选取该下标对应的学生名字。示例代码如下:

function draw() {
    var index = Math.floor(Math.random() * names.length);
    var result = document.getElementById('result');
    result.innerHTML = names[index].textContent + ' 被抽中了!';
}

3. 完整代码

HTML和JavaScript代码结合起来如下所示:

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>班级抽签</title>
</head>

<body>
    <h1>班级抽签</h1>
    <h2>名单</h2>
    <ul id="nameList">
        <li>张三</li>
        <li>李四</li>
        <li>王五</li>
        <!-- 其余名字省略 -->
    </ul>
    <button id="drawButton" onclick="draw()">抽签</button>
    <p id="result"></p>

    <script>
        var names = document.querySelectorAll('#nameList li');

        function draw() {
            var index = Math.floor(Math.random() * names.length);
            var result = document.getElementById('result');
            result.innerHTML = names[index].textContent + ' 被抽中了!';
        }
    </script>
</body>

</html>

4. 示例说明

示例一:添加学生名单

在HTML中,我们可以添加或删除学生姓名,来实时改变名单列表。例如,新增一个学生“赵六”,只需在HTML代码中添加一行代码即可:

<ul id="nameList">
    <li>张三</li>
    <li>李四</li>
    <li>王五</li>
    <li>赵六</li>
    <!-- 其余名字省略 -->
</ul>

示例二:改变抽签结果显示方式

我们也可以自定义抽签结果的显示方式,例如将抽中的学生名字背景颜色设为黄色。可以在draw()函数中添加一行代码,来设置抽中学生的样式:

function draw() {
    var index = Math.floor(Math.random() * names.length);
    var result = document.getElementById('result');
    result.innerHTML = names[index].textContent + ' 被抽中了!';
    names[index].style.backgroundColor = 'yellow';
}

这样,抽中的学生就会以黄色的背景色在名单列表中突出显示。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript实现班级抽签小程序 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • CSS实现HTML元素透明的方法小结

    请看下面我整理的“CSS实现HTML元素透明的方法小结”攻略。 CSS实现HTML元素透明的方法小结 1. opacity属性 设置元素透明度最原始、最简单的方法,就是使用opacity属性。此属性的值必须在0~1之间,数值越小,元素越透明。 示例1:设置一个文字透明度为0.5的元素 <p style="opacity: 0.5;"…

    css 2023年6月10日
    00
  • 使用CSS3实现SVG路径描边动画效果入门教程

    使用CSS3可以通过描边动画为SVG图形增加一些生动的效果,我们可以通过以下步骤来实现: 1. SVG代码准备 首先我们需要准备一个SVG代码,该SVG图形应该是单路径。例如下面这个简单的SVG: <svg viewBox="0 0 200 200"> <path d="M50,50 L150,50 Q170,…

    css 2023年6月10日
    00
  • IE6和IE7中行内元素后的浮动元素被折行的问题解决

    当一个行内元素后面跟着一个浮动元素时,IE6和IE7会出现该行包含浮动元素的“坍塌”问题,导致浮动元素被折行到下一行。下面是详细的解决攻略: 解决攻略: 1. 给浮动元素添加display:inline属性 该方式是最简单的解决方法。将浮动元素从块级元素转化成行内元素,可以解决IE6和IE7中行内元素后的浮动元素被折行的问题。 float: left; di…

    css 2023年6月10日
    00
  • 使用CSS transition和animation改变渐变状态的实现方法

    有关如何使用CSS transition和animation改变渐变状态的实现方法,我可以提供以下完整攻略: 1. 使用CSS transition改变渐变状态的实现方法 1.1 使用线性渐变 在CSS中,我们可以使用线性渐变(linear-gradient)来实现渐变效果,并使用transition来改变渐变状态。以下是一个示例代码: .gradient …

    css 2023年6月11日
    00
  • Bootstrap入门书籍之(五)导航条、分页导航

    关于“Bootstrap入门书籍之(五)导航条、分页导航”的完整攻略,我将详细讲解如下。 导航条 Bootstrap提供了导航条组件,可以方便地实现网页的导航功能。下面是使用Bootstrap实现导航条的步骤。 在html页面中引入Bootstrap的样式和脚本文件。可以在Bootstrap官网下载最新版本。 <link href="http…

    css 2023年6月10日
    00
  • JS组件福利大放送 推荐12款好用的Bootstrap组件

    下面是详细讲解“JS组件福利大放送 推荐12款好用的Bootstrap组件”的完整攻略: 1. 什么是JS组件? JS组件指的是使用JavaScript编写的可复用的代码模块,常用于构建Web应用程序的用户界面和交互功能。在Bootstrap中,包含了许多常用的JS组件,例如下拉菜单、模态框、轮播图等。 2. 为什么使用Bootstrap组件? Bootst…

    css 2023年6月9日
    00
  • Windows XP中的18个秘密武器

    Windows XP中的18个秘密武器攻略 Windows XP是微软推出的操作系统,发布于2001年,虽然已经退出主流支持,但仍然有很多用户在使用。本篇文章将介绍XP中的18个秘密武器,帮助用户更好地使用Windows XP操作系统。 1. 编辑注册表 注册表是Windows操作系统的核心之一,它储存了所有应用程序和操作系统的配置信息。通过编辑注册表,可以…

    css 2023年6月10日
    00
  • js css 实现遮罩层覆盖其他页面元素附图

    关于JS和CSS实现遮罩层覆盖其他页面元素,以下是详细的攻略: 基础知识 在了解实现方法之前,我们需要了解遮罩层的概念,遮罩层通常被用于在页面上方创建一个可见但不可操作的蒙层,来防止用户对页面进行交互,一些常见的用法有模态框、提示框等。 实现遮罩层通常需要以下几个步骤: 添加一个蒙层元素; 设置蒙层元素的样式; 插入蒙层元素到页面中; 如果需要,使用JS对蒙…

    css 2023年6月9日
    00
合作推广
合作推广
分享本页
返回顶部