在JavaScript中更改字体颜色时出现问题
我正在制作一个计算器,每次按下操作员按钮时,字体都会变成红色在JavaScript中更改字体颜色时出现问题,javascript,html,Javascript,Html,我正在制作一个计算器,每次按下操作员按钮时,字体都会变成红色 function changeBtnColor(entry){ if(entry == '+'){ calculator.getElementById("buttonAdd").style.fontcolor = 'red'; calculator.answer.value +=' + '; } if(entry == '-'){ calculator.getEl
function changeBtnColor(entry){
if(entry == '+'){
calculator.getElementById("buttonAdd").style.fontcolor = 'red';
calculator.answer.value +=' + ';
}
if(entry == '-'){
calculator.getElementById("buttonSub").style.fontcolor = 'red';
calculator.answer.value +=' - ';
}
if(entry == '*'){
calculator.getElementById("buttonMult").style.fontcolor = 'red';
calculator.answer.value +=' * ';
}
if(entry == '/'){
calculator.getElementById("buttonDiv").style.fontcolor = 'red';
calculator.answer.value +=' / ';
}
}
我如何调用此js函数的示例如下:
<form id = "calculator" name=”calculator”>
<table id = "myTable" border = "2">
<tbody>
<tr>
<td colspan = "4">
<input id = "answer" type="text" name="answer"/>
</td>
</tr>
<tr>
<td><input id = "button7" type="button" value="7" onClick="calculator.answer.value +='7'"></td>
<td><input id = "button8" type="button" value="8" onClick="calculator.answer.value +='8'"></td>
<td><input id = "button9" type="button" value="9" onClick="calculator.answer.value +='9'"></td>
<td><input id = "buttonAdd" type="button" value="+" onClick="changeBtnColor('+')"></td>
</tr>
有没有人对这个错误有什么建议,或者可以告诉我为什么会发生这种情况?谢谢 函数“getElementById”是为文档对象而不是表单元素定义的
document.getElementById("buttonAdd")
函数“getElementById”是为文档对象而不是表单元素定义的
document.getElementById("buttonAdd")
您是否在任何地方定义了
计算器
变量?如果不是,它将是未定义的,这可能是您看到的错误的原因。(我想它应该指的是
元素,但是你真的在任何地方分配它吗?)我只是在中调用它,你建议实际分配它在哪里?我不确定你称它为“在”元素是什么意思。您不能在HTML中分配JS变量,您需要在JS代码本身中进行分配。在这里,一种方法是var calculator=document.getElementById(“calculator”)
。事实上,现在我已经更仔细地研究了您的代码,它无论如何都不会起作用-因为getElementById
只作为方法存在于文档
对象上,而不存在于任何其他DOM节点上。@RobinZigmond是的,我现在看到了。。关于如何在单击时更改按钮的字体颜色以及将操作符输出到屏幕上,您有什么建议吗?您的代码在大纲上看起来不错(尽管可以改进以避免重复太多),您只需要引用实际元素(通过ID、名称或其他CSS选择器)然后设置它们的.style.color
。(fontcolor
不是有效的CSS属性)。我还建议使用jQuery值得一看——虽然不是必需的,但它使DOM和CSS这样的转换不那么冗长。您是否在任何地方定义了计算器
变量?如果不是,它将是未定义的,这可能是您看到的错误的原因。(我想它应该指的是
元素,但是你真的在任何地方分配它吗?)我只是在中调用它,你建议实际分配它在哪里?我不确定你称它为“在”元素是什么意思。您不能在HTML中分配JS变量,您需要在JS代码本身中进行分配。在这里,一种方法是var calculator=document.getElementById(“calculator”)
。事实上,现在我已经更仔细地研究了您的代码,它无论如何都不会起作用-因为getElementById
只作为方法存在于文档
对象上,而不存在于任何其他DOM节点上。@RobinZigmond是的,我现在看到了。。关于如何在单击时更改按钮的字体颜色以及将操作符输出到屏幕上,您有什么建议吗?您的代码在大纲上看起来不错(尽管可以改进以避免重复太多),您只需要引用实际元素(通过ID、名称或其他CSS选择器)然后设置它们的.style.color
。(fontcolor
不是有效的CSS属性)。我还建议,使用jQuery是值得一看的——虽然不是必需的,但它使类似这样的DOM和CSS转换不那么冗长。