我将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进行进一步的阅读。