函数返回NaN

时间:2016-07-10 16:00:48

标签: javascript html

<% @lessons.each do |lesson| %>

<% if current_user.completed_steps.include? lesson %>  
            <div class="panel panel-success">
          <% else %>

虽然我已使用<script> function myfunction() { var year = prompt("enter your birth year"); Number(year); document.getElementById('year').innerHTML = year; myage(); } function myage(year) { var res; res = 2016 - year; document.getElementById("age").innerHTML = res; } </script> <p id="year"><h1>YEAR</h1></p> <p id="age"><h2>your age is=</h2></p> <button onclick="myfunction()">click to login</button> 功能仍然Number()导致myage()。 (我是初学者,请原谅我缺乏知识。)

2 个答案:

答案 0 :(得分:2)

您需要将值传递给您的函数myage

 myage(year);

更新后的摘录

 function myfunction()
 { 
   var year=prompt("enter your birth year");
   document.getElementById('year').nextSibling.innerHTML = "Year Of Birth = " +year;
   
   myage(year);
 }
function myage(year)
{
  var res;
  res=2016-year;
  document.getElementById('age').nextSibling.innerHTML = "your age is =" + res;
  
}
 <!DOCTYPE html>
 <html>
 <body>
<p id="year"><h1></h1></p>
<p id="age"><h2></h2></p>
<button onclick="myfunction()">click to login</button>
</body>
</html>

答案 1 :(得分:0)

如前所述,您必须将age作为参数传递给myage函数。

另一种方法: 您可以设置年份参数的默认值。通过这种方式,您可以通过参数转义发送它。 Default Parameter Value MDN可能是一个很好的读取。所以这个函数可以从其他模块中获取硬编码值,如果有人没有发送任何值,他们会获取最后一个设置值。一种使它不那么紧密耦合的方法。

如果您有疑虑,请告诉我。

&#13;
&#13;
function myfunction() {
  var year = prompt("enter your birth year");
  Number(year);
  document.getElementById('year').innerHTML = year;
  myage(year);
}

function myage(year = document.getElementById('year').innerHTML) {
  var res;
  res = 2016 - year;
  document.getElementById("age").innerHTML = res;
}
&#13;
<p id="year">
  <h1>YEAR</h1>
</p>
<p id="age">
  <h2>your age is=</h2>
</p>
<button onclick="myfunction()">click to login</button>
&#13;
&#13;
&#13;