Javascript 华氏温度到摄氏温度功能未运行

Javascript 华氏温度到摄氏温度功能未运行,javascript,html,Javascript,Html,Java脚本函数未正常运行。我调用的函数倾向于将华氏温度转换为摄氏温度。 im无法从文本框中获取值。 函数toCelsius(f){ 申报表(5/9)*(f-32); } document.getElementById(“demo”).innerHTML=toCelsius(document.getElementById(“temp”).value); 使用javascript函数不必使用表单。 我是这样做的: Javascript: function toCelsius(f) {

Java脚本函数未正常运行。我调用的函数倾向于将华氏温度转换为摄氏温度。 im无法从文本框中获取值。

函数toCelsius(f){ 申报表(5/9)*(f-32); } document.getElementById(“demo”).innerHTML=toCelsius(document.getElementById(“temp”).value);
使用javascript函数不必使用
表单。
我是这样做的:

Javascript:

function toCelsius(f) {
    return (5 / 9) * (f - 32);
}

function convert() {
    document.getElementById("demo").innerHTML = toCelsius(document.getElementById("temp").value);
}
<p id="demo"></p>
<input type="text" id="temp" />
<input type="button" id="submit" value="Convert" onclick="convert()" />
HTML:

function toCelsius(f) {
    return (5 / 9) * (f - 32);
}

function convert() {
    document.getElementById("demo").innerHTML = toCelsius(document.getElementById("temp").value);
}
<p id="demo"></p>
<input type="text" id="temp" />
<input type="button" id="submit" value="Convert" onclick="convert()" />


您需要完全加载DOM树才能使用元素。当您在
#demo
中写入时,表单尚未呈现。 要解决此问题,可以将javascript附加到dom内容加载事件,或将其移动到代码底部:

    <p id="demo"> </p>
    <form onsubmit="makeSubmit()">
    <input type="text" id="temp">
    <input type="submit" id="submit">
    </form>
    <script>
        function toCelsius(f) {
            return (5 / 9) * (f - 32);
        }

        function makeSubmit() {
             document.getElementById("demo").innerHTML = toCelsius(document.getElementById("temp").value);
             return false; //needs to prevent submit form
        }
    </script>

函数toCelsius(f){ 申报表(5/9)*(f-32); } 函数makeSubmit(){ document.getElementById(“demo”).innerHTML=toCelsius(document.getElementById(“temp”).value); 返回false;//需要防止提交表单 }
在页面上呈现元素之前,您正在运行脚本。尝试将脚本放在
标记之前。也。脚本的一部分在大括号外?显示一个垃圾值,但不起作用。尽管它起作用,但问题不在提交事件中,而是在DOM中包含javascript的顺序。因为JSFIDLE在DOM完全加载时会重新排列js,所以在您的小提琴中是有效的。@MarcosPérezGude javascript的顺序仍然正确。这就是问题所在。我只是在本地进行了测试,但不得不用固定的js代码替换js代码,并更改提交按钮以触发
convert
功能。如果希望进行测试,您可以在本地尝试。不,问题出在这一行
document.getElementById(“demo”).innerHTML=toCelsius(document.getElementById(“temp”).value),执行此行时,
document.getElementById(“temp”)
未定义,因为DOM未完全加载。在submit事件中,用户丢失了防止默认操作,例如返回false,但这不是问题所在。当然在不做任何更改的情况下测试它。P.D.注意,我没有投你反对票,我只是在评论。