我将document.getElementById("outcome").value分配给变量outcome
当我单击按钮时,我要将ID为“结果”的输入值设置为“某事”。

但是,当我在下面执行代码时,未设置输入表单结果。
尽管如此,输入表单的结果什么也没发生。

function throwDice() {

    var point=document.getElementById("point").value;
    var outcome=document.getElementById("outcome").value;
    outcome=Somthing;
}


之后,我修改我的代码。

function throwDice() {

    var point=document.getElementById("point").value;

    document.getElementById("outcome").value="Something";
}


我要做的就是删除分配可变结果并
将“内容”直接分配给document.getElementById("outcome").value
在这种情况下,输入表单结果的值为“ Something”。

我的问题是为什么outcome="Something"无法运行。

最佳答案

情况:

在您的第一个代码中,您仅用outcome覆盖"Something"变量值,而不是用id outcome将其写入元素,因此,如果您编写:

说明:

在这里,您声明了outcome变量,并将其值设置为输入值:

var outcome=document.getElementById("outcome").value;


在此行中,您将outcome变量重置为"Something"

outcome=Somthing;


因此,在这种情况下,outcome变量仅保留输入值,然后将其更改为"Something"

因此要回答您的问题:为什么result =“ Something”无法运行?是因为outcome没有引用input元素value,而是仅保留其value

换一种说法:

因此,在您的第一个代码中,您只是在做这样的事情:

var outcome = 5;     //outcome here is 5
outcome = "Something";    //outcome is changed to "Something"


在JavaScript中输入的变量很松散,这就是为什么您看到这种行为的原因,您可以查看Understanding Loose Typing in JavaScript进行进一步的阅读。

09-10 14:39