关于js中定时器、if条件判断的问题
问题描述:
运行js代码,发现progress标签的value值逐步增大,直到105,value的值就不变了。请问value的值为105后,满足if条件,value的值怎么不变为0?
window.onload = function(){ obj = document.getElementById("progress"); window.setInterval("change()",1000) } function change(){ if (obj.value>100) { obj.value = 0; }else { obj.value = obj.value + 5; } }
答
肯定,因为你的获取到的obj.value初始等于''(obj.value = ''), 字符串空加什么都是字符串, obj.value = obj.value + 5;改为
obj.value = obj.value - 0 + 5;
答
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<input id='progress'>
<script>
window.onload = function () {
obj = document.getElementById("progress");
window.setInterval("change()", 1000)
}
function change() {
if (obj.value > 100) {
obj.value = 0;
} else {
obj.value = obj.value + 5;
}
}
</script>
</body>
</html>
可以变为零, 但 obj.value 的值为字符串
答
使用parseInt方法转: obj = parseInt(document.getElementById("progress")); 还要考虑值为空的情况。
这是最基本的js方法,没事多看下api