您好我正在学习javascript。
所以我想创建一个将华氏温度转换为摄氏温度的函数,但输入存储在变量中,然后用alert(result);
显示结果
这里是我的基本理解代码
var f = document.getElementById("fa").value;
function toCelsius(f) {
var result = (5/9) * (f-32);
alert (result);
}

<p>calls a function to convert from Fahrenheit to Celsius:</p>
<form>
input fahrenheit :<input type="number" id="fa">
<button onclick="toCelsius(f)">submit</button>
</form>
&#13;
每当我输入一个数字时,结果都不会改变,我认为我在.value或.innerHTML中错了吗?
答案 0 :(得分:1)
<p>Calls a function to convert from Fahrenheit to Celsius:</p>
<form>
input fahrenheit :<input type="number" id="fa"/>
<button onclick="toCelsius()">submit</button>
</form>
<script>
function toCelsius() {
var f = document.getElementById("fa").value;
var result = (5/9) * (f-32);
alert (result);
}
</script>
&#13;
将值检查放在函数内,不带参数。
答案 1 :(得分:0)
您需要在数学表达式中使用变量“f”作为数字。 JavaScript会为你打字,但是既然你正在学习,那么很高兴知道有办法强迫它。
function toCelsius()
{
var f = parseFloat(document.getElementById("fa").value);
var result = (5/9) * (f-32);
alert (result);
}
或
function toCelsius()
{
var result = (5/9) * (parseFloat(document.getElementById("fa").value) - 32);
alert (result);
}
或
function toCelsius()
{
alert ((5/9) * (parseFloat(document.getElementById("fa").value) - 32));
}
======
<button onclick="toCelsius(f)">submit</button>
这不起作用,因为此时f不在播放中。 调用你的处理程序,然后获取你需要的DOM值。
答案 2 :(得分:0)
你的问题在这里:
var f = document.getElementById("fa").value;
这将创建一个全局变量,其中包含ID为 fa 的元素的当前值。之后它不会改变,因此无论您在表单中输入什么内容,您都将获得相同的值。
单击按钮时需要获取输入值,所以:
E.g。
function toCelsius(n) {
var result = (5/9) * (n-32);
alert (result);
}
<p>calls a function to convert from Fahrenheit to Celsius:</p>
<form>
input fahrenheit :<input type="number" id="fa" name="fa">
<button type="button" onclick="toCelsius(this.form.fa.value)">Calc value</button>
</form>
请注意,输入必须具有成功的名称(即,其值与表单一起提交)。如果您希望提交表单,请将按钮类型设置为提交(或删除类型,因为提交是默认设置)。
答案 3 :(得分:-1)
你继续使用
var f = document.getElementById("fa").value;
您需要将f转换为整数或浮点格式,因此如果您只想要整数,请使用ParseInt;如果需要整数和分数,请使用ParseFloat。