我只是在打字几个小时后尝试修改我的代码,才为学校作业制作了一个计算器。它仍然无法正常工作,我希望有人能找到我的错误。
function myStory() {
window.alert ("Very doge");
}
// Als de pagina laadt: laad de query
$(document).ready(function(){
// Onthoud de input van de gebruiker om later te gebruiken
var inputs=[""];
// Onthoud de input van de gebruikers die eerst word ingetypt.
var totalString;
// Operator array voor validatie geheugen
var operators1 = ["Mc", "M+", "M-", "MR"];
// Operator array voor validatie zonder '.' Zo kan er niet bijv. 2x ++
// worden ingevuld
var operators2 = ["+", "-", "/", "X", "+/-"];
// Operators arrat voor validatie met de '.'
var operators3 = ["."];
// Nummers voor validatie
var numbers = [0,0,1,2,3,4,5,6,7,8,9];
//Functie om alles te updaten
// ALS er een punt in zit, dan wordt er gekeken of het er maar 1 is en niet
// meerdere, anders krijg je de error: Duplicate
function getValue(input){
if(operators3.includes(inputs[inputs.length-1]) === true && input === "."){
window.alert("Duplicate '.' ");
}
else if (inputs.length === 1 && operators2.includes(input) === false){
inputs.push(input);
}
else if(operators2.includes(inputs[inputs.length-1]) === false){
inputs.push(input);
}
else if (numbers.includes(Number(input))){
inputs.push(input);
}
update();
}
//Functie om de display te updaten
function update(){
totalString = inputs.join("");
$("#display").html(totalString);
console.log(inputs);
}
//Functie om het totaal te berekenen bijv. 8+6-4 wordt ingevuld
// Dit wordt dan in 1x berekend. Het wordt zegmaar ge-evalueerd
function getTotal(){
totalString = inputs.join("");
$("#display").html(eval(totalString));
}
//Wanneer er op een button wordt geklikt, voer dan de functie uit.
$("input").on("click", function(){
if (this.id === "C"){
inputs=[""];
update();
}
else if (this.id === "="){
getTotal();
}
else {
if(inputs[inputs.length-1].indexOf("+", "-", "/", "X", "+/-") === -1){
getValue(this.id);
}
else {
getValue(this.id);
}
}
});
});

body {
font-family: 'Titillium Web', Helvetica, sans-serif;
font-weight: 600;
background-color: #f4f4f4;
}
#container {
position: relative;
width: 400px;
height: 600px;
background-color: #FFFFFF;
margin: 0px auto;
border-radius: 15px;
box-shadow: 20px 40px 45px -4px rgba(0,0,0,0.05);
}
form[name="calculator"] {
width: 320px;
margin: 0 auto;
margin-top: 50px;
}
#answer {
font-family: 'Titillium Web', Helvetica, sans-serif;
font-weight: 600;
background-color: #FFFFFF;
border: none;
margin-top: 1em;
width: 320px;
height: 50px;
padding-top: 50px;
}
#display {
padding-left: 300px;
font-size: 2em;
}
.line {
width: 320px;
height: 1px;
background-color: #c3c3c3;
}
input[type="button"] {
font-family: 'Titillium Web', Helvetica, sans-serif;
font-weight: 600;
width: 65px;
height: 65px;
margin-left: 10px;
margin-top: 10px;
border: none;
background-color: #FFFFFF;
color: #525252;
font-size: 1.1em;
}
input[type="button"]:hover {
border: none;
color: #f67474;
cursor: pointer;
}
input.numbers {
color: #9d9d9d;
}
input.red {
color: #f67474;
}
input.red:hover {
color: #525252;
}
/* Memes */
p {
color: #9d9d9d;
float: left;
}
input.m1 {
float: left;
margin-left: 150px;
margin-top: 80px;
position: absolute;
width: 160px !important;
background-color: inherit;
/* Chrome, Safari, Opera */
-webkit-animation: rainbow 2s infinite;
}
input.m2 {
margin-left: 250px;
margin-top: 250px;
position: absolute;
width: 160px !important;
background-color: inherit;
/* Chrome, Safari, Opera */
-webkit-animation: rainbow 2s infinite;
}
input.m3 {
margin-left: 1100px;
margin-top: 140px;
position: absolute;
width: 160px !important;
background-color: inherit;
/* Chrome, Safari, Opera */
-webkit-animation: rainbow 2s infinite;
}
input.m4 {
margin-left: 1000px;
margin-top: 400px;
position: absolute;
width: 160px !important;
background-color: inherit;
/* Chrome, Safari, Opera */
-webkit-animation: rainbow 2s infinite;
}
input.m5 {
margin-left: 150px;
margin-top: 450px;
position: absolute;
width: 160px !important;
background-color: inherit;
/* Chrome, Safari, Opera */
-webkit-animation: rainbow 2s infinite;
}
input.m6 {
margin-left: 1200px;
margin-top: 340px;
position: absolute;
width: 160px !important;
background-color: inherit;
/* Chrome, Safari, Opera */
-webkit-animation: rainbow 2s infinite;
}
input.m7 {
margin-left: 1100px;
margin-top: 600px;
position: absolute;
width: 160px !important;
background-color: inherit;
/* Chrome, Safari, Opera */
-webkit-animation: rainbow 2s infinite;
}
input.m8 {
margin-left: 300px;
margin-top: 600px;
position: absolute;
width: 160px !important;
background-color: inherit;
/* Chrome, Safari, Opera */
-webkit-animation: rainbow 2s infinite;
}
/* Chrome, Safari, Opera */
@-webkit-keyframes rainbow{
20%{color: red;}
40%{color: purple;}
60%{color: green;}
80%{color: blue;}
100%{color: orange;}
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="style.css">
<link href="https://fonts.googleapis.com/css?family=Titillium+Web:300,400,600,700" rel="stylesheet">
<script src="javascriptcalc.js" type="text/javascript"></script>
<title>Clean Calculator</title>
</head>
<body>
<!-- many memes -->
<input class="m1" type="button" value="such wow" onclick="myStory()">
<input class="m2" type="button" value="many calculate" onclick="myStory()">
<input class="m3" type="button" value="very machine" onclick="myStory()">
<input class="m4" type="button" value="much javascript" onclick="myStory()">
<input class="m5" type="button" value="such root" onclick="myStory()">
<input class="m6" type="button" value="many squares" onclick="myStory()">
<input class="m7" type="button" value="very numbers" onclick="myStory()">
<input class="m8" type="button" value="much code" onclick="myStory()">
<!-- Calculator -->
<div id="container">
<form name="calculator">
<div id="answer">
<span id="display">0</span>
</div>
</br>
<div class="line"></div>
<input type="button" id="MC" value="MC"/>
<input type="button" id="M+" value="M+"/>
<input type="button" id="M-" value="M-"/>
<input type="button" id="MR" value="MR"/>
</br>
<input type="button" id="C" value="C"/>
<input type="button" id="+/-" value="+/-"/>
<input type="button" id="%" value="%"/>
<input class="red" type="button" id="/" value="/"/>
</br>
<input class="numbers" type="button" id="7" value="7"/>
<input class="numbers" type="button" id="8" value="8"/>
<input class="numbers" type="button" id="9" value="9"/>
<input class="red" type="button" id="X" value="X"/>
</br>
<input class="numbers" type="button" id="4" value="4"/>
<input class="numbers" type="button"id="5" value="5"/>
<input class="numbers" type="button" id="6" value="6"/>
<input class="red" type="button" id="-" value="-"/>
</br>
<input class="numbers" type="button" id="1" value="1"/>
<input class="numbers" type="button" id="2" value="2"/>
<input class="numbers" type="button" id="3" value="3"/>
<input class="red" type="button" id="+" value="+"/>
</br>
<input class="numbers" type="button" id="00" value="00"/>
<input class="numbers" type="button" id="0" value="0"/>
<input type="button" id="," value=","/>
<input class="red" type="button" id="=" value="="/>
</br>
</form>
</div>
</body>
</html>
&#13;
答案 0 :(得分:3)
您缺少 jquery 。使用
加载 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
function myStory() {
window.alert ("Very doge");
}
// Als de pagina laadt: laad de query
$(document).ready(function(){
// Onthoud de input van de gebruiker om later te gebruiken
var inputs=[""];
// Onthoud de input van de gebruikers die eerst word ingetypt.
var totalString;
// Operator array voor validatie geheugen
var operators1 = ["Mc", "M+", "M-", "MR"];
// Operator array voor validatie zonder '.' Zo kan er niet bijv. 2x ++
// worden ingevuld
var operators2 = ["+", "-", "/", "X", "+/-"];
// Operators arrat voor validatie met de '.'
var operators3 = ["."];
// Nummers voor validatie
var numbers = [0,0,1,2,3,4,5,6,7,8,9];
//Functie om alles te updaten
// ALS er een punt in zit, dan wordt er gekeken of het er maar 1 is en niet
// meerdere, anders krijg je de error: Duplicate
function getValue(input){
if(operators3.includes(inputs[inputs.length-1]) === true && input === "."){
window.alert("Duplicate '.' ");
}
else if (inputs.length === 1 && operators2.includes(input) === false){
inputs.push(input);
}
else if(operators2.includes(inputs[inputs.length-1]) === false){
inputs.push(input);
}
else if (numbers.includes(Number(input))){
inputs.push(input);
}
update();
}
//Functie om de display te updaten
function update(){
totalString = inputs.join("");
$("#display").html(totalString);
console.log(inputs);
}
//Functie om het totaal te berekenen bijv. 8+6-4 wordt ingevuld
// Dit wordt dan in 1x berekend. Het wordt zegmaar ge-evalueerd
function getTotal(){
totalString = inputs.join("");
$("#display").html(eval(totalString));
}
//Wanneer er op een button wordt geklikt, voer dan de functie uit.
$("input").on("click", function(){
if (this.id === "C"){
inputs=[""];
update();
}
else if (this.id === "="){
getTotal();
}
else {
if(inputs[inputs.length-1].indexOf("+", "-", "/", "X", "+/-") === -1){
getValue(this.id);
}
else {
getValue(this.id);
}
}
});
});
&#13;
body {
font-family: 'Titillium Web', Helvetica, sans-serif;
font-weight: 600;
background-color: #f4f4f4;
}
#container {
position: relative;
width: 400px;
height: 600px;
background-color: #FFFFFF;
margin: 0px auto;
border-radius: 15px;
box-shadow: 20px 40px 45px -4px rgba(0,0,0,0.05);
}
form[name="calculator"] {
width: 320px;
margin: 0 auto;
margin-top: 50px;
}
#answer {
font-family: 'Titillium Web', Helvetica, sans-serif;
font-weight: 600;
background-color: #FFFFFF;
border: none;
margin-top: 1em;
width: 320px;
height: 50px;
padding-top: 50px;
}
#display {
padding-left: 300px;
font-size: 2em;
}
.line {
width: 320px;
height: 1px;
background-color: #c3c3c3;
}
input[type="button"] {
font-family: 'Titillium Web', Helvetica, sans-serif;
font-weight: 600;
width: 65px;
height: 65px;
margin-left: 10px;
margin-top: 10px;
border: none;
background-color: #FFFFFF;
color: #525252;
font-size: 1.1em;
}
input[type="button"]:hover {
border: none;
color: #f67474;
cursor: pointer;
}
input.numbers {
color: #9d9d9d;
}
input.red {
color: #f67474;
}
input.red:hover {
color: #525252;
}
/* Memes */
p {
color: #9d9d9d;
float: left;
}
input.m1 {
float: left;
margin-left: 150px;
margin-top: 80px;
position: absolute;
width: 160px !important;
background-color: inherit;
/* Chrome, Safari, Opera */
-webkit-animation: rainbow 2s infinite;
}
input.m2 {
margin-left: 250px;
margin-top: 250px;
position: absolute;
width: 160px !important;
background-color: inherit;
/* Chrome, Safari, Opera */
-webkit-animation: rainbow 2s infinite;
}
input.m3 {
margin-left: 1100px;
margin-top: 140px;
position: absolute;
width: 160px !important;
background-color: inherit;
/* Chrome, Safari, Opera */
-webkit-animation: rainbow 2s infinite;
}
input.m4 {
margin-left: 1000px;
margin-top: 400px;
position: absolute;
width: 160px !important;
background-color: inherit;
/* Chrome, Safari, Opera */
-webkit-animation: rainbow 2s infinite;
}
input.m5 {
margin-left: 150px;
margin-top: 450px;
position: absolute;
width: 160px !important;
background-color: inherit;
/* Chrome, Safari, Opera */
-webkit-animation: rainbow 2s infinite;
}
input.m6 {
margin-left: 1200px;
margin-top: 340px;
position: absolute;
width: 160px !important;
background-color: inherit;
/* Chrome, Safari, Opera */
-webkit-animation: rainbow 2s infinite;
}
input.m7 {
margin-left: 1100px;
margin-top: 600px;
position: absolute;
width: 160px !important;
background-color: inherit;
/* Chrome, Safari, Opera */
-webkit-animation: rainbow 2s infinite;
}
input.m8 {
margin-left: 300px;
margin-top: 600px;
position: absolute;
width: 160px !important;
background-color: inherit;
/* Chrome, Safari, Opera */
-webkit-animation: rainbow 2s infinite;
}
/* Chrome, Safari, Opera */
@-webkit-keyframes rainbow{
20%{color: red;}
40%{color: purple;}
60%{color: green;}
80%{color: blue;}
100%{color: orange;}
}
&#13;
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="style.css">
<link href="https://fonts.googleapis.com/css?family=Titillium+Web:300,400,600,700" rel="stylesheet">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="javascriptcalc.js" type="text/javascript"></script>
<title>Clean Calculator</title>
</head>
<body>
<!-- many memes -->
<input class="m1" type="button" value="such wow" onclick="myStory()">
<input class="m2" type="button" value="many calculate" onclick="myStory()">
<input class="m3" type="button" value="very machine" onclick="myStory()">
<input class="m4" type="button" value="much javascript" onclick="myStory()">
<input class="m5" type="button" value="such root" onclick="myStory()">
<input class="m6" type="button" value="many squares" onclick="myStory()">
<input class="m7" type="button" value="very numbers" onclick="myStory()">
<input class="m8" type="button" value="much code" onclick="myStory()">
<!-- Calculator -->
<div id="container">
<form name="calculator">
<div id="answer">
<span id="display">0</span>
</div>
</br>
<div class="line"></div>
<input type="button" id="MC" value="MC"/>
<input type="button" id="M+" value="M+"/>
<input type="button" id="M-" value="M-"/>
<input type="button" id="MR" value="MR"/>
</br>
<input type="button" id="C" value="C"/>
<input type="button" id="+/-" value="+/-"/>
<input type="button" id="%" value="%"/>
<input class="red" type="button" id="/" value="/"/>
</br>
<input class="numbers" type="button" id="7" value="7"/>
<input class="numbers" type="button" id="8" value="8"/>
<input class="numbers" type="button" id="9" value="9"/>
<input class="red" type="button" id="X" value="X"/>
</br>
<input class="numbers" type="button" id="4" value="4"/>
<input class="numbers" type="button"id="5" value="5"/>
<input class="numbers" type="button" id="6" value="6"/>
<input class="red" type="button" id="-" value="-"/>
</br>
<input class="numbers" type="button" id="1" value="1"/>
<input class="numbers" type="button" id="2" value="2"/>
<input class="numbers" type="button" id="3" value="3"/>
<input class="red" type="button" id="+" value="+"/>
</br>
<input class="numbers" type="button" id="00" value="00"/>
<input class="numbers" type="button" id="0" value="0"/>
<input type="button" id="," value=","/>
<input class="red" type="button" id="=" value="="/>
</br>
</form>
</div>
</body>
</html>
&#13;