基本的javascript getElementById说明
basic javascript getElementById clarification
我不得不使用HTML和JS做一个简单的计算器,由于我从未在JS上编程过,所以我有一个问题要问,以获得正确的逻辑。这是代码:
我有一个函数,它必须写在我的计算器屏幕上;
function writeToScreen(a) {
var elem = document.getElementById('screen');
switch (a.value) {
case '+': {
if (firstOperation) {
lastOperation = '+';
firstNumber = elem.value;
elem.value = "";
firstOperation = 0;
} else {
lastOperation = '+';
firstNumber += elem.value;
}
}
break;
case '-': {
if (firstOperation) {
lastOperation = '-';
firstNumber = elem.value;
elem.value = "";
firstOperation = 0;
} else {
lastOperation = '-';
firstNumber -= elem.value;
}
}
break;
case '*': {
if (firstOperation) {
lastOperation = '*';
firstNumber = elem.value;
elem.value = "";
firstOperation = 0;
} else {
lastOperation = '*';
firstNumber *= elem.value;
}
}
break;
case '/': {
if (firstOperation) {
lastOperation = '/';
firstNumber = elem.value;
elem.value = "";
firstOperation = 0;
} else {
lastOperation = '/';
firstNumber /= elem.value;
}
}
break;
case '=': {
if (firstOperation) {
} else {
switch (lastOperation) {
case '+': {
elem.value = (firstNumber + elem.value);
}
break;
case '-': {
elem.value = firstNumber - elem.value;
}
break;
case '/': {
elem.value = firstNumber / elem.value;
}
break;
case '*': {
elem.value = firstNumber * elem.value;
}
break;
default: {
}
break;
}
firstOperation = 1;
lastOperation = '';
}
}
break;
case 'C': {
elem.value = "";
}
break;
case '1': {
elem.value += a.value;
}
break;
case '2': {
elem.value += a.value;
}
break;
case '3': {
elem.value += a.value;
}
break;
case '4': {
elem.value += a.value;
}
break;
case '5': {
elem.value += a.value;
}
break;
case '6': {
elem.value += a.value;
}
break;
case '7': {
elem.value += a.value;
}
break;
case '8': {
elem.value += a.value;
}
break;
case '9': {
elem.value += a.value;
}
break;
case '0': {
elem.value += a.value;
}
break;
default: {
}
break;
}
}
这是我的计算器屏幕:
<td colspan=3 align="center"><input id="screen" type=text disabled></input></td>
这是我计算的一个按钮:
<td align="center"><button type="button" onclick="writeToScreen(this)" value=4>4</button></td>
现在来问这个问题,看看我的逻辑是否正确。基本上,当我按下按钮时,会调用函数writeToScreen,将当前按钮的值4作为参数(this)。数字4现在显示在我的计算器屏幕上,但我不知道显示是从哪里来的。它来自getElementById("screen")。此函数是否检查"screen"id是否为输入类型,然后显示它?展览究竟发生在哪里?
谢谢!
行var elem = document.getElementById('screen')
获取id
属性设置为screen
的元素,在本例中为input
元素。Form元素(input
元素属于其中)具有一个名为value
的属性,顾名思义,它是元素的值。可以通过执行formElement.value
来访问此属性。此属性也是可写的,这意味着您可以通过执行formElement.value = theValue
以编程方式设置其值。
在您的情况下,elem
变量是一个输入元素,因此您可以使用上述方法获取或设置其值。因此,在screen
元素中显示值的行是执行elem.value += ...
或elem.value = ""
的那些行(此处...
表示任何值)。
Dom事件模型
document.getElementById
<!-- when "click" event is triggered on this button/element, call writeToScreen -->
<!-- with "this", the button element itself, as it's first argument -->
<button type="button" onclick="writeToScreen(this)" value=4>
功能。。。
// define a function, store the first arg as "a"
function writeToScreen(a) {
// define a local variable named "elem"
// look for the element you want to manipulate by calling
// "getElementById" of "document" with a string "screen" as it's only argument
var elem = document.getElementById('screen');
// switch "value" of the clicked button element, which "a" is referring to
switch (a.value) {
...
case '4': { // if the button being clicked has a value === "4"
elem.value += a.value; // set the value of "elem"(id="screen") += a.value
点击按钮"4",调用writeToScreen,然后使屏幕的值+=4,似乎是错误的LOL
- reactjs this.refs vs document.getElementById
- 如何通过adf中的document.getElementById获取inputText字段值
- 无法获取文档.GetElementById工作正常
- document.getElementById(“st”).click();不起作用
- Javascript:Can't使用getElementById获取元素
- 如何使用“;getElementById”;在一个循环中
- Javascript GetElementByID has no value
- document.getElementById并使用id名称
- document.getElementById在js中不起作用
- document.getElementById.style.backgroundImage not working
- 如何从document.getElementById()中获取UniqueID
- 从输入框、Javascript、getElementById获取值
- 什么'这个javascript代码getElementById有问题
- DOMDocument getelementbyid conflict?
- 如何从getelementbyid用javascript编写变量
- inline svg--getElementById在Opera中不起作用
- 在init function()中调用getElementById(“..”),而不是想用它做点什么的函数
- 将global.getelementbyid连接到单个变量中
- 未捕获的类型错误:未定义不是上的函数.GetElementByID
- document.getElementById(..) is null