0

我有一个 HTML5 文件,它直接在 HTML 文件中包含 javascript(由咖啡脚本制成)(我更喜欢以这种方式进行 HTML/js 编程)。有四个 JS 函数可以将一种温度单位转换为另一种。该代码不会显示任何输出。然而,如果第四个函数(r2k())被删除,所有的输入框(除了第四个)现在都可以工作。我不知道 r2k() 中是否有我忽略的错误,或者 JS 中是否存在某些功能限制。

<!DOCTYPE HTML>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head><meta http-equiv="content-type" content="text/html;charset=utf-8" /><title>Temperature Conversions</title></head>
<!--Made by Devyn Collier Johnson <DevynCJohnson@Gmail.com> (2013); Javascript made with Coffeescript-->
    <body>
        <script type="text/javascript">
function k2c() { //Kelvin to Celsius
    var x;
    x = parseInt(document.querySelectorAll('input[name="k2c_input"]')[0].value) - 273.15;
    alert(x.toFixed(2));
}

function c2k() { //Celsius to Kelvin
    var x;
    x = parseInt(document.querySelectorAll('input[name="c2k_input"]')[0].value) + 273.15;
    alert(x.toFixed(2));
}

function f2k() { //Fahrenheit to Kelvin
    var x;
    x = (parseInt(document.querySelectorAll('input[name="f2k_input"]')[0].value) + 459.67) * (5 / 9);
    alert(x.toFixed(2));
}

function r2k() { //Rankine to Kelvin
    var x;
    x = parseInt(document.querySelectorAll('input[name="r2k_input"]')[0].value * (5 / 9);
    alert(x.toFixed(2));
}

        </script>

<h1>Temperature Conversions</h1><h6>Made by Devyn Collier Johnson &lt;DevynCJohnson@Gmail.com&gt; (2013)</h6>

<form method="get" onsubmit="return false">

<p>Kelvin to Celsius</p>
    <input type="text" name="k2c_input" value="" placeholder="KELVIN" id="k2c_input"/>
    <button name="k2c_button" id="k2c_button" onClick="k2c()">Solve</button>

<p>Celsius to Kelvin</p>
    <input type="text" name="c2k_input" value="" placeholder="CELSIUS" id="c2k_input"/>
    <button name="c2k_button" id="c2k_button" onClick="c2k()">Solve</button>

<p>Fahrenheit to Kelvin</p>
    <input type="text" name="f2k_input" value="" placeholder="FAHRENHEIT" id="f2k_input"/>
    <button name="f2k_button" id="f2k_button" onClick="f2k()">Solve</button>

<p>Rankine to Kelvin</p>
    <input type="text" name="r2k_input" value="" placeholder="RANKINE" id="r2k_input"/>
    <button name="r2k_button" id="r2k_button" onClick="r2k()">Solve</button>

<br/><br/><br/><br/><input type="reset" value="Clean Boxes"/>

</form>
    </body>
</html>
4

1 回答 1

4

总是检查你的 JS 控制台。此行缺少括号:

x = parseInt(document.querySelectorAll('input[name="r2k_input"]')[0].value * (5 / 9);
                                                                          ^

如果您只是获得与选择器匹配的第一个元素,请使用querySelector而不是querySelectorAll

document.querySelector('input[name="r2k_input"]').value

此外,将基数参数传递给parseInt. 没有它,带有前导零的数字将被某些浏览器解释为八进制:

parseInt(..., 10);
于 2013-06-29T23:19:48.527 回答