Javascript:为什么即使使用了parseInt()函数,我也会得到NaN?

Javascript:为什么即使使用了parseInt()函数,我也会得到NaN?,javascript,nan,parseint,Javascript,Nan,Parseint,我想创建一个可以执行以下任务的HTML页面: 从用户处获取一个数字 计算乘法表并将其显示在“计算”按钮下方 乘法表的格式应如下所示,但在同一页的“计算”按钮下方: 5 10 15 20 25 30 35 40 45 50 但是我遇到了一个错误,并且需要帮助如何在同一页上显示这样的表格,请帮助并容忍我的新手错误:-) 乘法表 函数createTable(nn) { 对于(i=1;i您的程序有一些问题,请看这一个 <!doctype html> <html> <

我想创建一个可以执行以下任务的HTML页面:

  • 从用户处获取一个数字
  • 计算乘法表并将其显示在“计算”按钮下方
  • 乘法表的格式应如下所示,但在同一页的“计算”按钮下方:

    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    
    但是我遇到了一个错误,并且需要帮助如何在同一页上显示这样的表格,请帮助并容忍我的新手错误:-)

    
    乘法表
    函数createTable(nn)
    {
    
    对于(i=1;i您的程序有一些问题,请看这一个

    <!doctype html>
    
    <html>
    <head>
    <title>Multiplication Table</title>
    <script type="text/javascript">
    function createTable()
    {
        var nn = document.getElementById("num").value;
    
        var str="<table>";
    
        for(i=1; i<=10; i++)
        { 
            str+="<tr><td>" + nn + "*" + i +" = " + (nn*i) + "</td></tr>";
        }
        str+="</table>";
    
        document.getElementById("t1").innerHTML = str;
    }
    </script>
    </head>
    
    <body>
    <h1><center>Assignment No.4</center></h1>
    <h4><center>Please Enter Number for Table and press the button</center><h4>
    
    <form>
    <center><input type="text" id="num" name="num" size=10></center><br />
    <center><button type="button" onclick="createTable()">Calculate</button></center>
    </form>
    <center><p id="t1"></p></center>
    </body>
    </html>
    
    
    乘法表
    函数createTable()
    {
    var nn=document.getElementById(“num”).value;
    var str=“”;
    对于(i=1;i来说,这并不神秘

    m = "num".value;
    
    这里,m=未定义,因为字符串“num”没有名为
    value
    的属性,即它是
    未定义的

    n = Number(m);
    
    数字(未定义)==NaN-因为未定义不是数字

    编辑:您的onclick也被这样调用-createTable('n')


    同样的问题,'n'不是数字,而是字符串。'n'*anything==NaN

    您正在将一个值转换为一个数字,但它在错误的时间,并且是错误的值。然后您甚至不使用结果

    此代码:

    m = "num".value;
    n = Number(m);
    
    onclick="createTable('n')"
    
    在页面加载时执行,因此这是在用户有机会输入任何数字之前。它不使用用户可以输入数字的字段,它只使用字符串
    “num”
    。由于字符串不是输入元素,它没有名为
    value
    的属性,因此
    m
    获取值
    undefined
    。将该值转换为一个数字会得到
    NaN
    ,但这甚至不是输出中得到的
    NaN
    ,因为从未使用
    n
    的值

    此代码:

    m = "num".value;
    n = Number(m);
    
    onclick="createTable('n')"
    
    不使用变量
    n
    ,它使用字符串
    'n'
    。这就是在输出中给出
    NaN
    ,因为这是在乘法中尝试使用字符串时得到的结果。即
    'n'*I
    导致
    NaN

    要获取用户输入的值,应在用户单击按钮时获取该值。将代码放入函数中,以便在该时间调用该值。使用
    getElementsByName
    方法查找元素:

    function getValue() {
       var m = document.getElementsByName("num")[0].value;
       return Number(m);
    }
    
    当用户单击按钮时,调用函数获取值并将其发送给创建表的函数:

    onclick="createTable(getValue())"
    
    在创建表的代码中,您应该将项目放在一起,然后将它们放在页面中。如果您将每个项目放在元素中,它们将相互替换,最后只剩下最后一个项目。此外,您可能希望在每个项目周围放一个元素,否则您只会得到一个数字串:

    function createTable(nn) {
      var str = '';
      for(var i = 1; i <= 10; i++) { 
        str += '<div>' + (nn * i) + '</div>';
      }
      document.getElementById("t1").innerHTML = str;
    }
    
    函数createTable(nn){
    var-str='';
    
    对于(var i=1;i是的,但这不是结果中可见的
    NaN
    。甚至没有使用
    n
    的值。