Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何验证两个运算符arn';不要互相追逐。计算器Javascript_Javascript_Html - Fatal编程技术网

如何验证两个运算符arn';不要互相追逐。计算器Javascript

如何验证两个运算符arn';不要互相追逐。计算器Javascript,javascript,html,Javascript,Html,我用常用的HTML、CSS、Javascript制作了一个简单的计算器,但遇到了一个问题 当我验证用户输入时,现在计算器会依次接收多个运算符 我试图通过在广告发布之前检查screen.innerHTML中是否有任何操作员,以及是否有操作员输出警告,告诉他们这是无效输入来禁用此功能 以下是我的代码,希望您能更好地理解: =>HTML: <!DOCTYPE html> <html> <head> <meta name="viewport" content="

我用常用的HTML、CSS、Javascript制作了一个简单的计算器,但遇到了一个问题

当我验证用户输入时,现在计算器会依次接收多个运算符

我试图通过在广告发布之前检查screen.innerHTML中是否有任何操作员,以及是否有操作员输出警告,告诉他们这是无效输入来禁用此功能

以下是我的代码,希望您能更好地理解:

=>HTML:

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="css/style.css">
<title>Calculator</title>
  </head>
  <body>
<div class="main-div">
    <div class="screen" id="screen"><p></p></div>
        <div class="clear" id="clear">C</div>
            <ul class="number-div">
                 <li>1</li>
                 <li>2</li>
                 <li>3</li>
                 <li>+</li>
                 <li>4</li>
                 <li>5</li>
                 <li>6</li>
                 <li>*</li>
                 <li>7</li>
                 <li>8</li>
                 <li>9</li>
                 <li>-</li>
                 <li>0</li>
                 <li id="blank"></li>
                 <li id="equals">=</li>
                 <li>/</li>
            </ul>
        </div>
    </div>
</div>  
<script type="text/javascript" src="js/javascript.js"></script>     
window.onload = function (){
var elements = document.getElementsByTagName("li");
var screen = document.querySelectorAll('p')[0];   // Returns a static NodeList of all elements descended from the element which it was invoked from that matches the specified group of CSS selectors
var clear = document.getElementsByClassName('clear')[0];

for(var i=0;i<elements.length;i++){
      if(elements[i].innerHTML === '='){
            elements[i].addEventListener("click", calculate(i));
      }else{
           elements[i].addEventListener("click", addtocurrentvalue(i));
      }
}

function addtocurrentvalue (i){
return function(){
    if (screen.innerHTML == "*" || screen.innerHTML=="+" || screen.innerHTML=="/" || screen.innerHTML=="-" && elements[i].innerHTML == "*" || elements[i].innerHTML=="+" || elements[i].innerHTML=="/" || elements[i].innerHTML=="-")  { 
       alert("Please enter number and then operator!");
    }else {
       screen.innerHTML += elements[i].innerHTML;

function calculate(i) {
return function () {
    if(screen.innerHTML ==''){
        alert("Please Enter valid Inputs");
    }else {
        screen.innerHTML = eval(screen.innerHTML);
    }


};

计算器

C
  • 一,
  • 二,
  • 三,
  • +
  • 四,
  • 五,
  • 六,
  • *
  • 七,
  • 八,
  • 九,
  • -
  • 0
  • =
  • /

=>Javascript:

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="css/style.css">
<title>Calculator</title>
  </head>
  <body>
<div class="main-div">
    <div class="screen" id="screen"><p></p></div>
        <div class="clear" id="clear">C</div>
            <ul class="number-div">
                 <li>1</li>
                 <li>2</li>
                 <li>3</li>
                 <li>+</li>
                 <li>4</li>
                 <li>5</li>
                 <li>6</li>
                 <li>*</li>
                 <li>7</li>
                 <li>8</li>
                 <li>9</li>
                 <li>-</li>
                 <li>0</li>
                 <li id="blank"></li>
                 <li id="equals">=</li>
                 <li>/</li>
            </ul>
        </div>
    </div>
</div>  
<script type="text/javascript" src="js/javascript.js"></script>     
window.onload = function (){
var elements = document.getElementsByTagName("li");
var screen = document.querySelectorAll('p')[0];   // Returns a static NodeList of all elements descended from the element which it was invoked from that matches the specified group of CSS selectors
var clear = document.getElementsByClassName('clear')[0];

for(var i=0;i<elements.length;i++){
      if(elements[i].innerHTML === '='){
            elements[i].addEventListener("click", calculate(i));
      }else{
           elements[i].addEventListener("click", addtocurrentvalue(i));
      }
}

function addtocurrentvalue (i){
return function(){
    if (screen.innerHTML == "*" || screen.innerHTML=="+" || screen.innerHTML=="/" || screen.innerHTML=="-" && elements[i].innerHTML == "*" || elements[i].innerHTML=="+" || elements[i].innerHTML=="/" || elements[i].innerHTML=="-")  { 
       alert("Please enter number and then operator!");
    }else {
       screen.innerHTML += elements[i].innerHTML;

function calculate(i) {
return function () {
    if(screen.innerHTML ==''){
        alert("Please Enter valid Inputs");
    }else {
        screen.innerHTML = eval(screen.innerHTML);
    }


};
window.onload=函数(){
var elements=document.getElementsByTagName(“li”);
var screen=document.queryselectoral('p')[0];//返回从调用它的元素派生的、与指定的CSS选择器组匹配的所有元素的静态节点列表
var clear=document.getElementsByClassName('clear')[0];

对于(var i=0;i您可以创建一个var,其中包含上次单击的按钮,并验证它是否是运算符

var lastClicked;
单击时:

function clicked(item){
    if (lastClicked != undefined && (lastClicked.value == "*" || lastClicked.value=="+" || lastClicked.value=="/" || lastClicked.value=="-")){
        alert('Last Button Clicked : ' + lastClicked.value)
    }
    lastClicked = item;
}   

您可以创建一个var,其中包含上次单击的按钮,并验证它是否为运算符

var lastClicked;
单击时:

function clicked(item){
    if (lastClicked != undefined && (lastClicked.value == "*" || lastClicked.value=="+" || lastClicked.value=="/" || lastClicked.value=="-")){
        alert('Last Button Clicked : ' + lastClicked.value)
    }
    lastClicked = item;
}   

尝试使用
let
替换
var
此处
var i=0;i尝试使用
let
替换
var
此处
var i=0;ipls共享可执行代码段或fiddler。您的代码根本不工作!请共享可执行代码段或fiddler。您的代码根本不工作!