【问题标题】:Debug help (keeps showing NaN) [closed]调试帮助(一直显示 NaN)[关闭]
【发布时间】:2016-05-13 07:43:00
【问题描述】:

请帮我调试我的代码:

<!DOCTYPE HTML>
<html lang="en-us">
<head>
  <meta charset="utf-8">
  <title> Miles to Kilometers Conveter</title>
  <script type="text/javascript">
/* Defining Table: Program to convert miles to kilometers.
 * Input: Miles
 * Processing: How many kilometers in a amount of miles inputed
 * Output: output total kilometers
 */
     function milesToKilo(){
         var miles= getElementByID=("milesinput");
         var kilo=1.60934;
         var k= parseFloat(kilo);
         var total= miles*k;
        document.getElementById('outputDiv').innerHTML = total;
    }
  </script>
</head>

<body>
  <h2>Miles to Kilometers Converter</h2>
  How many Miles?<input type="text" id="milesinput">
  <button type="button" onclick="milesToKilo()">Convert</button>
  <div id='outputDiv'></div>
</body>
</html>

【问题讨论】:

  • 你好!你的问题与众不同;你应该学习如何缩进和格式化你的代码!它将帮助您在将来调试一些错误,并帮助其他开发人员阅读它。作为初学者,这可能看起来很麻烦,但值得付出努力。我敢打赌,人们因此而对您的问题投反对票。这是一个不错的工具,可以为您完成工作:jsbeautifier.org,但您应该编写代码

标签: javascript nan


【解决方案1】:

var miles = getElementById=("milesinput") 应该是var miles = getElementById("milesinput"):注意getElementById 和( 之间缺少=。除此之外……

miles 被分配了 getElementById("milesinput") 的值,这是一个 HTML element——它是 JavaScript 变量的一种特殊种类,而不是 number。

这种类型的element 具有value 属性。您可以使用miles.value 访问它,但它是string 类型。您需要将其转换为如下数字:

var total = parseFloat(miles.value) * k

【讨论】:

  • 哇,谢谢,我是编程新手。我没想到会有这么好的答案。
  • 不客气,祝你好运(:
【解决方案2】:

这是一个解决方案,您需要获取元素的值并从中解析一个 int。

http://plnkr.co/edit/NOYYKx0bYqJ2QJ21prUc?p=preview

function milesToKilo(){ 
  var miles = parseInt(document.getElementById("milesinput").value); 
  var kilo =1.60934; 
  var k = parseFloat(kilo); 
  var total= miles*k; 
  document.getElementById('outputDiv').innerHTML = total; 
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-21
    • 2014-09-22
    • 2014-02-17
    • 1970-01-01
    • 2020-10-16
    • 1970-01-01
    相关资源
    最近更新 更多