首页 新闻 搜索 专区 学院

最近小弟在自学前端,在自己练习个加减效果的代码时遇到个问题想请教大神们

0
[待解决问题]

最近小弟在自学前端,在自己练习个加减效果的代码时遇到个问题想请教大神们

html代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<link rel="stylesheet" type="text/css" href="css/css.css"/>
<script type="text/javascript" src="js/JS.js"></script>
</head>
<body>
<a href="#" id="a1">-</a>
<form>
<input type="text" name="" id="id" value="1" />
</form>
<a href="#" id="a2">+</a>
</body>

</html>

css代码:

a{
text-decoration: none;
display: block;
background-color: #eee;
width: 30px;
height: 30px;
line-height: 30px;
}
#a1{
float: left;
margin-right: 20px;
text-align: center;
margin-top: 2px;
}
#a2{
float: left;
margin-left: 20px;
text-align: center;
margin-top: 2px;
}
form{
float: left;
}
form input{
display: block;
width: 40px;
height: 30px;
text-align: center;
border:1px solid #eee;

}

想问的问题在js里

js代码:

window.onload=function(){
var input=document.getElementById("id").value;
document.getElementById("a1").onclick=function(){
if(isNaN(input)
{
alert("请输入数字");
}
else{
if(input>1)
{
document.getElementById("id").value=parseInt(input.value)-1;
}
}
}

}

用input变量接受了“id"的value值,然后用isNaN()判断变量是否是非数字型和parseInt()转换变量是成整数,然而没有执行结果,未报错,不能执行减法

但把变量变成了document.getElementById("id").value之后才有效,

报错,可以执行减法,改过的代码如下,小白请教

window.onload=function(){
var input=document.getElementById("id").value;
document.getElementById("a1").onclick=function(){
if(isNaN(document.getElementById("id").value))
{
alert("请输入数字");
}
else{
if(document.getElementById("id").value>1)
{
document.getElementById("id").value=parseInt(document.getElementById("id").value)-1;
}
}
}
}

 

砰砰碰碰砰砰的主页 砰砰碰碰砰砰 | 菜鸟二级 | 园豆:212
提问于:2018-05-10 20:19
< >
分享
所有回答(1)
0

首先,你第一个if(isNaN(input))那个右括号是中文括号

其次,前一份代码里你的input在window.onload时就已经确定了,后面没有任何修改,因此你无论输入什么input都保留onload时的值(应当把var input那一行放到onclick的函数里面)

然后,input是document.getElementById("id").value,前面那个代码里为什么又有input.value,这样只能parseInt(undefined)搞出一个NaN

hehe_54321 | 园豆:750 (小虾三级) | 2018-05-10 20:55

😱😱谢谢 十分感谢

支持(0) 反对(0) 砰砰碰碰砰砰 | 园豆:212 (菜鸟二级) | 2018-05-10 21:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册