关于javascript的一个问题。
计算一个小数四舍五入后的值,js部分我是这样写的:varx=document.getElementById("nub");functionrd(){alert(Math....
计算一个小数四舍五入后的值,js部分我是这样写的:
var x = document.getElementById("nub");
function rd(){
alert(Math.round(x.value));
}
这样写的话显示alert(Math.round(x.value));这句出错了,然后我改成以下写法:
function vl(id){
return document.getElementById(id).value;
}
function rd(){
alert(Math.round(vl("nub")));
}
这样就可以,为什么呢,第一种方法我也是和书上的一样啊,为啥第一种方法会出错? 展开
var x = document.getElementById("nub");
function rd(){
alert(Math.round(x.value));
}
这样写的话显示alert(Math.round(x.value));这句出错了,然后我改成以下写法:
function vl(id){
return document.getElementById(id).value;
}
function rd(){
alert(Math.round(vl("nub")));
}
这样就可以,为什么呢,第一种方法我也是和书上的一样啊,为啥第一种方法会出错? 展开
2个回答
展开全部
那要看你的var x = document.getElementById("nub");写在什么位置,如果直接写在<script></script>之间就会出错,如果写在方法里面就不会出错。比如:
<script>
var x = document.getElementById("nub");
function rd(){
alert(Math.round(x.value));
}
</script>
上面这样写就会出错(前提是输入框没有默认值),因为js一执行,就获取了id是nub的文本框对象了,这时,你在在文本框里面输入内容已经没有用了。所以x.value是空(”“)值,对空值进行Math.round就会出错
<script>
function rd(){
var x = document.getElementById("nub");
alert(Math.round(x.value));
}
</script>
这样写就是正确的(这样写和你的第二种写法差不多),主要是var x = document.getElementById("nub");要放方法里面
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询