javascript 简单的加法计算
javascript simple addition computation
我是 javascript 的新手。我不知道我的代码有什么问题
num1:<input id="num1" type="number">
num2:<input id="num2" type="number">
<button type="button" onclick="myFunction()">compute</button>
answer:<input id="demo" type="text"> and answer: <p id="demo"></p>
<script>
function myFunction() {
var x = document.getElementById("num1").value;
var y = document.getElementById("num2").value;
var ans = x + y;
document.getElementById("demo").innerHTML = ans;
}
</script>
这是你的答案...
<button type="button" onclick="myFunction()">compute</button>
answer:<input id="demo" type="text"> and answer: <p id="demo"></p>
<script> function myFunction() {
var x = document.getElementById("num1").value;
var y = document.getElementById("num2").value;
var ans = parseInt(x) + parseInt(y);
document.getElementById("demo").innerHTML = ans; }
</script>
您有两次 id="demo"。在输入的情况下没有 innerHtml,它是值而不是你想要的。所以使用这个:
document.querySelector("p#demo").innerHTML = ans;
不要在文档中两次使用 ID,并且您从输入字段中获得的值是字符串并且您进行了字符串加法,因此您必须先将其解析为整数. HTML5 输入类型 number
仅在某些新浏览器中显示一个字段,该字段对数字以外的其他字符无效,但是当您使用 javascript 读取它的值时,您会得到一个字符串。
您可以使用 parseInt
解析您的字符串。如果要支持浮动,可以使用parseFloat
.
num1:<input id="num1" type="number">
num2:<input id="num2" type="number">
<button type="button" onclick="myFunction()">compute</button>
answer:<input id="demoInput" type="text"> and answer: <p id="demoHtml"></p>
<script>
function myFunction() {
var x = document.getElementById("num1").value;
var y = document.getElementById("num2").value;
var ans = parseInt(x) + parseInt(y)
document.getElementById("demoInput").value = ans;
document.getElementById("demoHtml").innerHTML = ans;
}
</script>
顺便说一句:
如果要命名两个或多个具有相同 ID 的元素,请使用 class 属性。然后你得到 document.getElementsByClassName("demo")
一个元素数组。
当您从输入控件获取值时,您将以字符串类型获取它,即使您在 html 中将其设置为数字类型 - 这种类型仅用于文本输入限制(您只能输入数字到那个文本框)。
var ans = x + y;
在这里,您只是 "chained" 将 x 和 y 字符串添加到一个新变量中 - 这就是“+”运算符在字符串上使用时所做的。
- 您可以通过围绕它们的 " 符号注意到字符串,而数字不是...
字符串对象解析(反序列化)为数字可以用parseFloat(转float类型)和parseInt(转int类型)
此外,您可以通过 instanceof 或使用构造函数检查类型 ether:
if(ans.constructor === String){
}
我是 javascript 的新手。我不知道我的代码有什么问题
num1:<input id="num1" type="number">
num2:<input id="num2" type="number">
<button type="button" onclick="myFunction()">compute</button>
answer:<input id="demo" type="text"> and answer: <p id="demo"></p>
<script>
function myFunction() {
var x = document.getElementById("num1").value;
var y = document.getElementById("num2").value;
var ans = x + y;
document.getElementById("demo").innerHTML = ans;
}
</script>
这是你的答案...
<button type="button" onclick="myFunction()">compute</button>
answer:<input id="demo" type="text"> and answer: <p id="demo"></p>
<script> function myFunction() {
var x = document.getElementById("num1").value;
var y = document.getElementById("num2").value;
var ans = parseInt(x) + parseInt(y);
document.getElementById("demo").innerHTML = ans; }
</script>
您有两次 id="demo"。在输入的情况下没有 innerHtml,它是值而不是你想要的。所以使用这个:
document.querySelector("p#demo").innerHTML = ans;
不要在文档中两次使用 ID,并且您从输入字段中获得的值是字符串并且您进行了字符串加法,因此您必须先将其解析为整数. HTML5 输入类型 number
仅在某些新浏览器中显示一个字段,该字段对数字以外的其他字符无效,但是当您使用 javascript 读取它的值时,您会得到一个字符串。
您可以使用 parseInt
解析您的字符串。如果要支持浮动,可以使用parseFloat
.
num1:<input id="num1" type="number">
num2:<input id="num2" type="number">
<button type="button" onclick="myFunction()">compute</button>
answer:<input id="demoInput" type="text"> and answer: <p id="demoHtml"></p>
<script>
function myFunction() {
var x = document.getElementById("num1").value;
var y = document.getElementById("num2").value;
var ans = parseInt(x) + parseInt(y)
document.getElementById("demoInput").value = ans;
document.getElementById("demoHtml").innerHTML = ans;
}
</script>
顺便说一句:
如果要命名两个或多个具有相同 ID 的元素,请使用 class 属性。然后你得到 document.getElementsByClassName("demo")
一个元素数组。
当您从输入控件获取值时,您将以字符串类型获取它,即使您在 html 中将其设置为数字类型 - 这种类型仅用于文本输入限制(您只能输入数字到那个文本框)。
var ans = x + y;
在这里,您只是 "chained" 将 x 和 y 字符串添加到一个新变量中 - 这就是“+”运算符在字符串上使用时所做的。
- 您可以通过围绕它们的 " 符号注意到字符串,而数字不是...
字符串对象解析(反序列化)为数字可以用parseFloat(转float类型)和parseInt(转int类型)
此外,您可以通过 instanceof 或使用构造函数检查类型 ether:
if(ans.constructor === String){
}