由于某种原因,值状态未定义,我如何将 javascript 结果放入网页中[重复]

Posted

技术标签:

【中文标题】由于某种原因,值状态未定义,我如何将 javascript 结果放入网页中[重复]【英文标题】:how can i put javascript result into a webpage as the values states undefined for some reason [duplicate] 【发布时间】:2016-01-26 07:54:04 【问题描述】:

< script type = "text/javascript" >
  function myFunction() 
    var n1 = document.getElementById("form-control1").innerhtml;
    var n2 = document.getElementById("form-control2").innerHTML;

    return Math.max(n1, n2);
  ;
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>JavaScript Challenge</title>


</head>

<body>
<!-- user interface -->
  First number
  <input type="text" id="form-control1" placeholder="your first number">Second number
  <input type="text" id="form-control2" placeholder="your second number">
  <br>
  <br>
  <button onclick="myFunction()">Calculate</button>

  </script>

</body>

</html>

我希望将用户输入值分配给变量 n1 和 n2。之后,当单击按钮时,具有最大值的变量会显示在网页上。但目前该值似乎并没有像它所说的未定义那样被存储。 我能做些什么?任何帮助 提前致谢

【问题讨论】:

你在哪里将myFunction() 的输出写入 DOM? 【参考方案1】:

尝试在input 元素处用.value 替换.innerHTML 以检索input 元素的值;创建包含n1n2 的数组,使用Array.prototype.map() 将值转换为Number,添加output 元素以将Math.max 的结果打印到文档中

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>JavaScript Challenge</title>
</head>
<body>
  <!-- user interface -->
  First number
  <input type="text" id="form-control1" placeholder="your first number">Second number
  <input type="text" id="form-control2" placeholder="your second number">
  <output></output>
  <br>
  <br>
  <button onclick="myFunction()">Calculate</button>
  <script type="text/javascript">
    function myFunction() 
      var n1 = document.getElementById("form-control1").value;
      var n2 = document.getElementById("form-control2").value;
      document.querySelector("output").innerHTML = Math.max.apply(Math, [n1, n2]);
    ;
  </script>
</body>
</html>

【讨论】:

.map(Number) 是不必要的,因为Math.max 处理字符串参数。【参考方案2】:

将innerHTML字符串转换为整数:

return Math.max(parseInt(n1),parseInt(n2));

【讨论】:

你不需要这样做。 Math.max 可以很好地处理字符串参数。如果他按照应有的方式使用input 元素的value 属性而不是使用innerHTML,这同样适用。

以上是关于由于某种原因,值状态未定义,我如何将 javascript 结果放入网页中[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Cocoa:如何将布尔属性绑定到 NSCellStateValue?

useState 挂钩未使用正确值初始化:数组

将用户输入从文本框插入到数据库(使用 mysql 的 PHP 到 PHPMYADMIN)代码由于某种原因不起作用

数组中的字符串仅在尝试获取单个值时返回未定义?

React-无法读取未定义的属性“setState”

由于某种原因,客户端未调用服务器 RPC