由于某种原因,值状态未定义,我如何将 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
元素的值;创建包含n1
、n2
的数组,使用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?