简体   繁体   English

我正在尝试使用 AddEventListener 和 QuerySelector 制作一个简单的 Javascript 计算器

[英]I'm trying to make a simple Javascript calculator with AddEventListener and QuerySelector

as the title says I'm trying to make a simple Javascript calculator from scratch using AddEventListener and QuerySelector functions, to me everything seems working correctly exept the equals function that gives me "undefined" result.正如标题所说,我正在尝试使用 AddEventListener 和 QuerySelector 函数从头开始制作一个简单的 Javascript 计算器,对我来说,除了给我“未定义”结果的 equals 函数之外,一切似乎都正常工作。 If anybody has a solution for that would be much appreciated.如果有人对此有解决方案,将不胜感激。 Thank you谢谢

var btn = document.querySelectorAll(".num");
var display=document.getElementById("txtDisplay");
var btncanc=document.getElementById("canc");
var currentOp=document.querySelectorAll(".operazione");
var resul=document.getElementById("equal");
var OP = null;

function pressnum(){
    var num = this.innerHTML;
    display.value=display.value+num;
}

for (let i = 0; i < btn.length; i++) {
    const btnNum = btn[i];
    btnNum.addEventListener("click", pressnum);
}
function cancella(){
    display.value= "";
}

btncanc.addEventListener("click", cancella);

function pressOp() {
    prevNumber = parseInt(display.value);
    display.value = "";
}
for (let i = 0; i < currentOp.length; i++) {
    const Op = currentOp[i];
    Op.addEventListener("click", pressOp); 
}


function executeCalc() {
    var currentNumber = parseInt(display.value);
    var result;

    switch (currentOp) {
        case '+':
            result = prevNumber + currentNumber;
            break;
        case '-':
            result = prevNumber - currentNumber;
            break;
        case '/':
            result = prevNumber / currentNumber;
            break;
        case '*':
            result = prevNumber * currentNumber;
            break;
    }
    display.value = result;

}

resul.addEventListener("click", executeCalc);
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Esercizio calcolatrice</title>
    <link rel="stylesheet" href="css/bootstrap.css">
</head>
<body>

    <div class="container">

        <div class="row mt-3">
            <div class="col-9">
                <input type="text" class="form-control" readonly id="txtDisplay">
            </div>
            <div class="col-3">
                <button type="button" class="btn btn-danger btn-block" id="canc">C</button>
            </div>
        </div>

        <div class="row mt-3">
            <div class="col-3">
                <button type="button" class="btn btn-primary btn-block num">7</button>
            </div>
            <div class="col-3">
                <button type="button" class="btn btn-primary btn-block num">8</button>
            </div>
            <div class="col-3">
                <button type="button" class="btn btn-primary btn-block num">9</button>
            </div>
            <div class="col-3">
                <button type="button" class="btn btn-secondary btn-block operazione">/</button>
            </div>
        </div>

        <div class="row mt-3">
            <div class="col-3">
                <button type="button" class="btn btn-primary btn-block num">4</button>
            </div>
            <div class="col-3">
                <button type="button" class="btn btn-primary btn-block num">5</button>
            </div>
            <div class="col-3">
                <button type="button" class="btn btn-primary btn-block num">6</button>
            </div>
            <div class="col-3">
                <button type="button" class="btn btn-secondary btn-block operazione" id="op">*</button>
            </div>
        </div>

        <div class="row mt-3">
            <div class="col-3">
                <button type="button" class="btn btn-primary btn-block num">1</button>
            </div>
            <div class="col-3">
                <button type="button" class="btn btn-primary btn-block num">2</button>
            </div>
            <div class="col-3">
                <button type="button" class="btn btn-primary btn-block num">3</button>
            </div>
            <div class="col-3">
                <button type="button" class="btn btn-secondary btn-block operazione">-</button>
            </div>
        </div>

        <div class="row mt-3">
            <div class="col-3 offset-3">
                <button type="button" class="btn btn-primary btn-block num">0</button>
            </div>
            <div class="col-3">
                <button type="button" class="btn btn-success btn-block" id="equal">=</button>
            </div>
            <div class="col-3">
                <button type="button" class="btn btn-secondary btn-block operazione">+</button>
            </div>
        </div>

    </div>

    <script src="js/main.js"></script>
</body>
</html>

In your switch, "currentOp" is not the value that you are expecting.在您的开关中,“currentOp”不是您期望的值。 You have to grab the innerHTML of it also.你还必须抓住它的innerHTML。

function pressOp() {
  prevNumber = parseInt(display.value);
  currentOp = this.innerHTML;
  display.value = "";
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 在我尝试制作的 javascript 计算器中获取“app.js:44 Uncaught TypeError: btn.addEventListener is not a function” - Getting "app.js:44 Uncaught TypeError: btn.addEventListener is not a function" in a javascript calculator I'm trying to make 我刚开始学习 javascript,我正在尝试制作一个计算器网站,但无法让它工作 - i just started learning javascript and i'm trying to make a calculator website but can't get it to work jQuery addEventListener by querySelector不起作用 - javascript addEventListener by querySelector not work 我在尝试使用html和Javascript制作计算器时陷入困境 - I'm getting stuck while trying to make a calculator using html and Javascript 我正在尝试将 Javascript 计算器作为 freecodecamp 任务的一部分,但无法使其与 ID 和数据运算符一起使用 - I'm trying to make a Javascript calculator as part of a freecodecamp task but can't get it to work with IDs and data-operators 我正在尝试使用html和javascript制作一个简单的井字游戏 - I'm trying to make a simple tic tac toe game with html and javascript 我正在尝试用 Javascript 制作一个计算器。 但它以某种方式不起作用 - I am trying to make a calculator in Javascript. But it is not working somehow Javascript addEventListener 不知何故无法与 Laravel 中的 querySelector 一起使用 - Javascript addEventListener somehow not working with querySelector in Laravel 尝试在 javascript 和 html 中制作时间表计算器 - Trying to make times table calculator in javascript and html 我正在尝试使用JavaScript / TypeScript进行简单的API调用,并获取正确返回的任何数据。 API以XML格式化 - I'm trying to make a simple API call using JavaScript/TypeScript and get any data to return properly. The API is formatted in XML
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM