为什么定义全局变量len,就不出效果呢
来源:4-10 编程练习
WYW265672
2022-05-06 16:49:10
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<p>字数限制在30字内,<span>您还可以输入<b>30</b> 字</span></p>
<textarea cols="50" rows="7" id="text"></textarea>
<script type="text/javascript">
//补充代码
var oB = document.getElementsByTagName('b')[0];
var oSpan = document.getElementsByTagName('span')[0];
var oText = document.getElementById('text');
oText.oninput = function () {
// len如果定义在函数外面,len就一直是0
var len = oText.value.length;
console.log(len);
if (len <= 30) {
oSpan.innerHTML = '您还可以输入<b>' + (30 - len) + '</b>字';
} else {
oSpan.innerHTML = '您已超出<b>' + (len - 20) + '</b>字';
}
};
</script>
</body>
</html>老师请详细讲一下,不明白
1回答
好帮手慕星星
2022-05-06
同学你好,解答如下:
1、测试代码,输入内容超出的时候多了10

else语句中计算应该减去30,不是20,修改如下:

2、针对提问回复:
len变量可以定义为全局的,但是获取输入框内容要在oninput事件中,否则提前获取输入框内容永远为空,长度为0。参考:

祝学习愉快!
相似问题