Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基本javascript getElementById说明_Javascript - Fatal编程技术网

基本javascript getElementById说明

基本javascript getElementById说明,javascript,Javascript,我必须用HTML和JS做一个简单的计算器,因为我从来没有在JS上编程过,所以我有一个问题,为了得到正确的逻辑。代码如下: 我有一个功能,必须写在我的计算器屏幕上 function writeToScreen(a) { var elem = document.getElementById('screen'); switch (a.value) { case '+': { if (firstOperation) { lastOperat

我必须用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>
4
现在来回答这个问题,并检查我的逻辑是否正确。基本上,当我按下按钮时,会调用函数writeToScreen,为当前按钮提供参数值4。数字4现在显示在我的计算器的屏幕上,但我看不出显示来自哪里。它是否来自getElementById(“屏幕”)。此函数是否检查“屏幕”id是否为输入类型,然后显示?展览具体在哪里举行


谢谢

var elem=document.getElementById('screen')
获取属性设置为
screen
的元素,在本例中,该属性是
输入
元素。表单元素(其中
input
元素所属)有一个名为
value
的属性,顾名思义,该属性就是元素的值。可以通过执行
formElement.value
来访问此属性。此属性也是可写的,这意味着您可以通过执行
formElement.value=theValue
以编程方式设置其值


在您的例子中,
elem
变量是一个输入元素,因此您可以使用上述方法获取或设置其值。因此,在
屏幕
元素中显示值的行是执行
elem.value+=…
elem.value=“”
这里表示任何值)的行。

var elem=document.getElementById('screen'))
获取
id
属性设置为
screen
的元素,在本例中,该元素是一个
输入
元素。表单元素(其中
input
元素所属)有一个名为
value
的属性,顾名思义,该属性就是元素的值。可以通过执行
formElement.value
来访问此属性。此属性也是可写的,这意味着您可以通过执行
formElement.value=theValue
以编程方式设置其值


在您的例子中,
elem
变量是一个输入元素,因此您可以使用上述方法获取或设置其值。因此,在
屏幕
元素中显示值的行是执行
elem.value+=…
elem.value=“”
这里表示任何值)的行。

var elem=document.getElementById('screen'))
获取
id
属性设置为
screen
的元素,在本例中,该元素是一个
输入
元素。表单元素(其中
input
元素所属)有一个名为
value
的属性,顾名思义,该属性就是元素的值。可以通过执行
formElement.value
来访问此属性。此属性也是可写的,这意味着您可以通过执行
formElement.value=theValue
以编程方式设置其值


在您的例子中,
elem
变量是一个输入元素,因此您可以使用上述方法获取或设置其值。因此,在
屏幕
元素中显示值的行是执行
elem.value+=…
elem.value=“”
这里表示任何值)的行。

var elem=document.getElementById('screen'))
获取
id
属性设置为
screen
的元素,在本例中,该元素是一个
输入
元素。表单元素(其中
input
元素所属)有一个名为
value
的属性,顾名思义,该属性就是元素的值。可以通过执行
formElement.value
来访问此属性。此属性也是可写的,这意味着您可以通过执行
formElement.value=theValue
以编程方式设置其值

在您的例子中,
elem
变量是一个输入元素,因此您可以使用上述方法获取或设置其值。因此,在
屏幕
元素中显示值的行是执行
elem.value+=…
elem.value=“”
这里指的是任何值)。


…点击按钮“4”,调用writeToScreen,然后使屏幕的值+=4,似乎是错误的LOL


…点击按钮“4”,调用writeToScreen,然后使屏幕的值+=4,似乎是错误的LOL


…点击按钮“4”,调用writeToScreen,然后使屏幕的值+=4,似乎是错误的LOL



点击按钮“4”,调用writeToScreen,然后使screen的值+=4,似乎是错误的LOL

我们需要看到更多的
writeToScreen
function writeToScreen(a){var elem=document.getElementById('screen');开关(a.value){case'+':{if(firstOperation){lastOperation='+';firstNumber=elem.value;elem.value=“”;firstOperation=0;}其他{lastOperation='+';firstNumber+=elem.value;}}}break;您可以编辑您的帖子,并将代码放在其中不会被截断的地方:)…下面是一个简单的示例。因此它与
getElementById()无关
。这只是从DOM中获取元素的一种方法。更新输入元素的
.value
将更新其显示。请注意,大多数元素没有
.value
。大多数其他元素,如
将使用
.appendChild()更新其内容
.textContent
或其他属性和方法。@斜视谢谢,这就是我所知道的
<!-- 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