Javascript计数错误
我创建了一个javascript计算器,我使用变量处理所有事情,但它不起作用。Javascript计数错误,javascript,html,Javascript,Html,我创建了一个javascript计算器,我使用变量处理所有事情,但它不起作用。 我试着使用document.getElementById(“box1”).valueistead of justv1,我发现有些东西改变了,我得到了1111如果我键入11+11,它不同了,为什么? 我不知道是什么问题,我尝试了一些东西,但没有改变 这是我的密码: JS计算器 + - * / 检查 var v1=document.getElementById(“box1”).value; var v2=docume
我试着使用
document.getElementById(“box1”).value
istead of justv1
,我发现有些东西改变了,我得到了1111
如果我键入11+11
,它不同了,为什么?我不知道是什么问题,我尝试了一些东西,但没有改变 这是我的密码:
JS计算器
+
-
*
/
检查
var v1=document.getElementById(“box1”).value;
var v2=document.getElementById(“box2”).value;
var sel=document.getElementById(“选择”).value;
var out=document.getElementById(“输出”).innerHTML;
函数计数(){
如果(sel==“+”){
out=v1+v2;
}
否则如果(sel==“-”){
out=v1-v2;
}
如果(sel==“*”),则为else{
out=v1*v2;
}
否则如果(sel==“/”){
out=v1/v2;
}
否则{
out=“Error!”
}
}
脚本中有3个问题
首先,您应该在count()函数中获取元素值(因为您希望在每次有人单击check按钮时读取这些值)
其次,您不应该读取输出值,而应该将其写入
第三,必须将输入值强制转换为int,以避免出现如下情况:1+1=11
function count() {
var v1 = parseInt(document.getElementById("box1").value);
var v2 = parseInt(document.getElementById("box2").value);
var sel = document.getElementById("select").value;
var out;
if (sel === "+") {
out = v1 + v2;
} else if (sel === "-") {
out = v1 - v2;
} else if (sel === "*") {
out = v1 * v2;
} else if (sel === "/") {
out = v1 / v2;
} else {
out = "Error Error Error!"
}
document.getElementById("output").innerHTML = out;
}
脚本中有3个问题 首先,您应该在count()函数中获取元素值(因为您希望在每次有人单击check按钮时读取这些值) 其次,您不应该读取输出值,而应该将其写入 第三,必须将输入值强制转换为int,以避免出现如下情况:1+1=11
function count() {
var v1 = parseInt(document.getElementById("box1").value);
var v2 = parseInt(document.getElementById("box2").value);
var sel = document.getElementById("select").value;
var out;
if (sel === "+") {
out = v1 + v2;
} else if (sel === "-") {
out = v1 - v2;
} else if (sel === "*") {
out = v1 * v2;
} else if (sel === "/") {
out = v1 / v2;
} else {
out = "Error Error Error!"
}
document.getElementById("output").innerHTML = out;
}
您的代码中有几个错误 a) 方法count()中的代码无法看到用户输入的值,因为设置值的代码会在用户有机会写东西之前立即执行 b) .innerHTML返回的值只是一个值,不能更新。您需要在HTML元素上设置innerHTML
document.getElementById("output").innerHTML = out;
c) 从.innerHTML读取的值是字符串,因此求和将计算字符串的串联,而不是您想要的。乘法根本不起作用。代码中有几个错误
function count() {
var v1 = document.getElementById("box1").value;
var v2 = document.getElementById("box2").value;
var sel = document.getElementById("select").value;
if (sel === "+") {
document.getElementById("output").innerHTML = +v1 + +v2;
}
else if (sel === "-") {
document.getElementById("output").innerHTML = parseInt(v1 - v2);
}
else if (sel === "*") {
document.getElementById("output").innerHTML = parseInt(v1 * v2);
}
else if (sel === "/") {
document.getElementById("output").innerHTML = parseInt(v1 / v2);
}
else {
document.getElementById("output").innerHTML = "Error Error Error!"
}
}
a) 方法count()中的代码无法看到用户输入的值,因为设置值的代码会在用户有机会写东西之前立即执行
b) .innerHTML返回的值只是一个值,不能更新。您需要在HTML元素上设置innerHTML
document.getElementById("output").innerHTML = out;
c) 从.innerHTML读取的值是字符串,因此求和将计算字符串的串联,而不是您想要的。乘法根本行不通
function count() {
var v1 = document.getElementById("box1").value;
var v2 = document.getElementById("box2").value;
var sel = document.getElementById("select").value;
if (sel === "+") {
document.getElementById("output").innerHTML = +v1 + +v2;
}
else if (sel === "-") {
document.getElementById("output").innerHTML = parseInt(v1 - v2);
}
else if (sel === "*") {
document.getElementById("output").innerHTML = parseInt(v1 * v2);
}
else if (sel === "/") {
document.getElementById("output").innerHTML = parseInt(v1 / v2);
}
else {
document.getElementById("output").innerHTML = "Error Error Error!"
}
}
如果将v1
、v2
、sel
放在count()
函数之前,它们将以初始值启动,表示空、空和+
您必须使用parseInt
将输出解析为整数
请注意,+v1
直接将字符串转换为int
如果将v1
、v2
、sel
放在count()
函数之前,它们将以初始值启动,表示空、空和+
您必须使用parseInt
将输出解析为整数
请注意,+v1
直接将字符串转换为int
您的代码存在多个问题:
- 您必须在
中分配count()
、v1
和v2
,否则在页面加载时只设置一次sel
- 变量
在代码中被覆盖。您应该这样分配它:out
var out=document.getElementById(“输出”)代码>
out.innerHTML=“foo”代码>
- 您必须使用
parseInt()
您可以在此处找到JSBin:
祝您计算器好运:)您的代码有多个问题:
- 您必须在
count()
中分配v1
、v2
和sel
,否则在页面加载时只设置一次
- 变量
out
在代码中被覆盖。您应该这样分配它:
var out=document.getElementById(“输出”)代码>
out.innerHTML=“foo”代码>
- 您必须使用
parseInt()
您可以在此处找到JSBin:
祝你好运:)希望我能回答。无论如何,你的问题是你的变量启动得太早,一旦你点击检查它就会得到错误的值。这是一把小提琴,你可以看得更清楚:)对不起,你的问题已经结束了。您的代码中有几个错误。a) 方法count()中的代码无法看到用户输入的值,因为设置值的代码会在用户有机会写东西之前立即执行。b) .innerHTML返回的值只是一个值,不能更新。您需要在HTML元素document.getElementById()上设置innerHTML;c) 您从.innerHTML读取的值是字符串,因此求和将计算字符串的串联,而不是您想要的。@BipBip您现在可以回答了。希望我能回答。无论如何,你的问题是你的变量启动得太早,一旦你点击检查它就会得到错误的值。这是一把小提琴,你可以看得更清楚:)对不起,你的问题已经结束了。您的代码中有几个错误。a) 方法count()中的代码无法看到用户输入的值,因为设置其值的代码是execut