在没有eval和jQuery

时间:2018-06-13 07:43:12

标签: javascript

我正在尝试计算用户的输入,但是当我尝试快速添加时,它输出 NaN = 而不是实际结果

用户应该能够单击按钮进行数学运算,问题是我的代码在用户进行数学运算之前无法获得用户输入

e.g。 = 用户输入:1 + 4; 我的代码无法获得1或4而无法进行数学

以下是我的尝试:

代码段:

var buttons = document.getElementsByClassName("buttons")[0];

	buttons.onclick = (element) => {
		if (element.target.className != "buttons") {
			if (element.target.innerHTML == "=") {
				for (var i = 0; i < result.innerHTML.length; i++) {
					if (buttons.innerHTML = "+") {
						result.innerHTML = element.target.value + i; 
					}
				}
			}
			result.innerHTML += element.target.innerHTML;
			console.log("User: " + element.target.innerHTML);
		}
	}
  <div class="result">
          </div>
          <div class="buttons">
            <div>&larr;</div>
            <div>C</div>
            <div>%</div>
            <div>/</div>
            <div>7</div>
            <div>8</div>
            <div>9</div>
            <div>x</div>
            <div>4</div>
            <div>5</div>
            <div>6</div>
            <div>-</div>
            <div>1</div>
            <div>2</div>
            <div>3</div>
            <div>+</div>
            <div>0</div>
            <div>.</div>
            <div class="equal">=</div>
          </div>

 

我无法编辑HTML并使用jQuery。

1 个答案:

答案 0 :(得分:0)

因此,问题在于,当您将元素中包含的文本添加到其他元素中包含的文本时,结果不是数字NaN。嗯,最后我检查了在字符串上做数学不会产生数字。也许我们应该尝试一些javascript的字符串解析函数来设计产生数字? parseInt

parseInt(result.innerHTML, 10) += parseInt(element.target.innerHTML);