为什么输入的数字在我的计算器程序中重复



如果我按1,需要11,1之后当我按2时,需要122,问题继续存在,当我按c时,它将清除程序的acc,但清除后,它将在上打印c

这在控制台上正常工作,但在评估(即按=(后,它会给出答案,然后=(

screen = document.getElementById('screen');
buttons = document.querySelectorAll('button');
screenValue = "";
for (items of buttons) {
items.addEventListener('click', e => {
button_text = e.target.innerText;
if (button_text == 'X') {
button_text = '*';
screenValue += button_text;
screen.value = screenValue;
} else if (button_text == 'C') {
screenValue = "";
screen.value = screenValue;
} else if (button_text == "=") {
screen.value = eval(screenValue);
} else {
screenValue += button_text;
screen.value = screenValue;
}
})
}
buttons.addEventListener('keydown', e => {
emp = e.key;

if (emp == "C") {
screenValue = "";
screen.value = screenValue;
console.log(emp);
} else if (emp == "=") {
screen.value = eval(screenValue);
console.log(screen.value);
} else {
screenValue += emp;
screen.value = screenValue;
console.log(screen.value);
}
})
<body>
<div class="container">
<h1>Calculator</h1>
<div class="calculator">
<input type="text" name='screen' id='screen'>
<table>
<tr>
<td><button>(</button></td>
<td><button>)</button></td>
<td><button>C</button></td>
<td><button>%</button></td>
</tr>
<tr>
<td><button>9</button></td>
<td><button>8</button></td>
<td><button>7</button></td>
<td><button>+</button></td>
</tr>
<tr>
<td><button>6</button></td>
<td><button>5</button></td>
<td><button>4</button></td>
<td><button>-</button></td>
</tr>
<tr>
<td><button>3</button></td>
<td><button>2</button></td>
<td><button>1</button></td>
<td><button>X</button></td>
</tr>
<tr>
<td><button>0</button></td>
<td><button>.</button></td>
<td><button>/</button></td>
<td><button>=</button></td>
</tr>
</table>
</div>

</div>
</body>

;按钮";您创建的变量是一个javaScript集合。我认为您不能在集合中使用addEventListener。我已经帮你更正了代码。

let screen = document.getElementById("screen");
let buttons = document.querySelectorAll("button");
let screenValue = "";
for (items of buttons) {
items.addEventListener("click", (e) => {
button_text = e.target.innerText;
if (button_text == "X") {
button_text = "*";
screenValue += button_text;
screen.value = screenValue;
} else if (button_text == "C") {
screenValue = "";
screen.value = screenValue;
} else if (button_text == "=") {
screen.value = eval(screenValue);
screenValue = eval(screenValue);
} else {
screenValue += button_text;
screen.value = screenValue;
}
});
items.addEventListener("keydown", (e) => {
emp = e.key;
if (emp == "C" || emp == "c") {
screenValue = "";
screen.value = screenValue;
console.log(emp);
} else if (emp == "=") {
screen.value = eval(screenValue);
console.log(screen.value);
} else {
screenValue += emp;
screen.value = screenValue;
console.log(screen.value);
}
});
}
<div class="container">
<h1>Calculator</h1>
<div class="calculator">
<input type="text" name='screen' id='screen'>
<table>
<tr>
<td><button>(</button></td>
<td><button>)</button></td>
<td><button>C</button></td>
<td><button>%</button></td>
</tr>
<tr>
<td><button>9</button></td>
<td><button>8</button></td>
<td><button>7</button></td>
<td><button>+</button></td>
</tr>
<tr>
<td><button>6</button></td>
<td><button>5</button></td>
<td><button>4</button></td>
<td><button>-</button></td>
</tr>
<tr>
<td><button>3</button></td>
<td><button>2</button></td>
<td><button>1</button></td>
<td><button>X</button></td>
</tr>
<tr>
<td><button>0</button></td>
<td><button>.</button></td>
<td><button>/</button></td>
<td><button>=</button></td>
</tr>
</table>
</div>

</div>

最新更新