Javascript 不确定如何使这个计算器功能工作
很快就要交数学作业了 我试着应用干燥的概念,但我不知道怎么做。我开始编写一个适用于所有数字的函数,但中途我意识到它不可能工作。匿名函数需要更改我知道,但我现在不能,因为我不知道实现它的其他方法Javascript 不确定如何使这个计算器功能工作,javascript,html,css,Javascript,Html,Css,很快就要交数学作业了 我试着应用干燥的概念,但我不知道怎么做。我开始编写一个适用于所有数字的函数,但中途我意识到它不可能工作。匿名函数需要更改我知道,但我现在不能,因为我不知道实现它的其他方法 document.querySelector(".button").addEventListener("click", function) { num = document.getElementById('something'); if (num != null && num
document.querySelector(".button").addEventListener("click", function) {
num = document.getElementById('something');
if (num != null && num === document.getElementById("zero")) {
calculation = calculation.concat("0");
} else if (num != null && num === document.getElementById("one")) {
calculation = calculation.concat("1");
} else if (num != null === && num document.getElementbyId("two")) {
calculation = calculation.concat("2");
} else if (num != nul && num === document.getElementbyId("three")) {
calculation = calculation.concat("3");
} else if (num != nul && num === document.getElementbyId("four")) {
calculation = calculation.concat("4");
} else if (num != nul && num === document.getElementbyId("five")) {
calculation = calculation.concat("5");
} else if (num != nul && num === document.getElementbyId()) {
calculation = calculation.concat("6");
}
}
每个数字都在表中的按钮内。他们也有身份证来识别他们是哪个号码。我不是在找代码,我不想剽窃任何东西。只是想了解我可以做什么不同的建议。最简单的方法是编写一个通用函数:
var buttons=document.querySelectorAll(“按钮”);
对于(变量i=0;i }
我认为使用jquery会更容易。只是一个建议
请看小提琴
我已经为所有按钮添加了一个“show”类,我们希望在单击时在屏幕上显示这些按钮,并为所有操作员按钮添加了一个“calc”类。将您的显示javascript替换为以下jquery
var calculation='';
$('button.show').click(function(){
calculation = calculation.concat($(this).text());
$('#screen').text(calculation);
});
还为计算添加了脚本
请参阅fiddle
num==文档。getElementById(“零”)
正在将一个对象与另一个对象进行比较。它们是不同的对象,因此这总是false
。您需要比较它们的值。在某个时候,您开始编写nul
,而不是null
。如果语法不正确,则选择第二个元素。一般要点:文档。querySelector(“.button”)
选择第一个元素,其类为“button”
。如果要选择
元素,请从选择器中删除“
”。如果要选择所有按钮,则需要.querySelectorAll(“按钮”)
,然后需要在结果列表上循环以将事件侦听器附加到各个项目(不能将事件侦听器附加到元素列表)。若要将值连接到字符串的结尾,只需说计算+=“0”
,无需使用.concat()
方法。请注意,此事件处理程序仅绑定到第一个按钮。@nnnn:谢谢。编辑了答案。但是…你的编辑与我说的无关。另外,请注意,当前值
和显示值
都将是字符串。