每个HTML文件的javascript函数数量是否有限制?

时间:2013-06-29 23:17:04

标签: javascript html5 coffeescript

我有一个HTML5文件,它直接在HTML文件中包含javascript(由coffeescript制作)(我更喜欢用这种方式进行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>

1 个答案:

答案 0 :(得分: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);