Stack Overflow en español
时间:2025-07-18 11:50来源: 作者:admin 点击:
12 次
Tengo que hacer una calculadora gráfica en Javascript, y el problema que tengo es que necesito hacer que al pulsar cada botón de operación se imprima
Tengo que hacer una calculadora gráfica en Javascript, y el problema que tengo es que necesito hacer que al pulsar cada botón de operación se imprima en el texto el resultado entre los números anteriores.
Se me ha ocurrido hacerlo con un contador booleano para que solo el primer click en la operación no imprima el resultado. Funciona solo la primera vez, ya que luego se empiezan a concatenar los siguientes números que introduzco con el resultado anterior.
¿Hay alguna forma más sencilla de hacerlo?
<fieldset>
<legend>Codigo</legend>
<div>
<div></div>
<button>CE</button>
<button>C</button>
<button>D</button>
<button>÷</button>
<button>7</button>
<button>8</button>
<button>9</button>
<button>x</button>
<button>4</button>
<button>5</button>
<button>6</button>
<button>-</button>
<button>1</button>
<button>2</button>
<button>3</button>
<button>+</button>
<button>+-</button>
<button>0</button>
<button>,</button>
<button>=</button>
</div>
</fieldset>
Javascript
var sacarElemento = document.getElementById.bind(document);
var texto = sacarElemento('texto');
var numero;
var cont = true;
sacarElemento('calculadora').addEventListener('click', function (event) {
var target = event.target;
if (target && target.matches('button')) {
if (!isNaN(target.textContent)) {
texto.textContent = texto.textContent + target.textContent;
} else if (target.textContent == "+") {
if (!cont) {
texto.textContent = parseFloat(numero) + parseFloat(texto.textContent);
} else {
numero = texto.textContent;
texto.textContent = "";
}
cont = false;
}
}
}) (责任编辑:)
|
------分隔线----------------------------