吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1650|回复: 2
收起左侧

[其他转载] JS练手:10以内加法测试题

  [复制链接]
georgefan 发表于 2021-10-29 22:30
本帖最后由 georgefan 于 2021-10-30 00:10 编辑

新学HTML和Javascript,自动生成10以内加法试题,自动评分。
不知为何,button的onclick选项会自动删除。
截屏了,凑合着看吧。
v2.0 增加了自助选题量的功能,优化了作答结果反馈。


[HTML] 纯文本查看 复制代码
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta content="width=device-width, initial-scale=1" name="viewport">
    <title>Math Problem</title>
</head>
<body>
<h1>百以内加法计算测试题</h1>
<p>请选择试题量(默认为10题,最高为50题):</p>
<!--<input id="itemNumber" placeholder="请输入试题数量" type="text">-->
<input id="itemNumber" max="50" min="10" type="range" value="10">
<p id="value">默认试题量:10</p>
<button id="itemBut">生成试卷</button>
<p id="test"></p>
<p class="item"></p>
<!--<button>检查答案</button>-->
<p class="key"></p>
<script>
    var itemNumber;
    var keys;

    function change() {
        itemNumber = document.getElementById("itemNumber").value / 1;
        document.getElementById('value').innerHTML = "已选试题量:" + itemNumber;

    }

    function printItems() {
        itemNumber = document.getElementById("itemNumber").value / 1;
        keys = new Array(itemNumber);
        for (i = 1; i < itemNumber + 1; i++) {
            var num1 = Math.floor(Math.random() * 10);
            var num2 = Math.floor(Math.random() * 10);
            var item = document.querySelector("p.item");
            document.getElementById("itemBut").disabled = "disabled";
            document.getElementById("itemNumber").disabled = "disabled";
            item.innerHTML += "<p>第" + i + "题:" + num1 + "+" + num2 + "=<input type='text' placeholder='请输入答案' id='item'> </p>";
            keys[i - 1] = num1 + num2;
        }
        var but = "<button id=\"submit\" onclick=\"getResult()\">结束答题<br>查看作答结果</button>";
        item.innerHTML += but;

    }

    function getResult() {

        var crrt = 0;
        var alert = "";
        var itemAnswers = document.querySelectorAll("input");
        for (i = 1; i < itemNumber + 1; i++) {
            var itemKey = keys[i - 1].toString();
            var itemAnswer = itemAnswers[i].value;
            itemAnswers[i].disabled = "disabled";
            if (itemAnswer === itemKey) {
                crrt++;
            } else if (itemAnswer === "") {
                alert += "<p>错题序号" + i + ":您未作回答" + itemAnswer + ",正确答案为" + itemKey + "。</p>";
            } else {
                alert += "<p>错题序号" + i + ":您的答案是" + itemAnswer + ",正确答案为" + itemKey + "。</p>";
            }
            var message = "共" + itemNumber + "道题,您答对了" + crrt + "道题,百分制得分为" + Math.floor(crrt / itemNumber * 100) + "分。";

        }
        buts=document.querySelectorAll("button");
        for  (i = 0; i < buts.length; i++){
            buts[i].disabled="disabled";
        }
        el = document.querySelector(".key");
        el.innerHTML = message + alert;
    }
</script>
</body>
</html>

图片版v2.0

图片版v2.0

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
yan182 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Ishin 发表于 2021-10-29 22:41
代码内没有给按钮添加点击执行事件。
应该需要加入以下代码?

<button onclick="getResult()">检查答案</button>

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
xmtt2008 + 1 + 1 我很赞同!

查看全部评分

 楼主| georgefan 发表于 2021-10-30 00:03
本帖最后由 georgefan 于 2021-10-30 00:05 编辑
Ishin 发表于 2021-10-29 22:41
代码内没有给按钮添加点击执行事件。
应该需要加入以下代码?

谢谢提醒。
源代码是有的,不知为何提交以后就没有了。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 11:40

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表