老师,请问这个情况是什么原因
来源:4-5 编程练习
慕桂英7176016
2020-06-02 19:46:56
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>输入文本</title>
</head>
<body>
<p>字数限制在30字内,<span id="span">您还可以输入<b id='count'>30</b> 字</span></p>
<textarea cols="50" rows="7" id="text"></textarea>
<script type="text/javascript">
//补充代码
var text=document.getElementById("text");
//取出接收数字的对象
var count=document.getElementById("count");
/* 这里改成另一种TagName的方法为什么就不行了
var count=document.getElementsByTagName('span[0]')
这样修改后,对应取消上面<span>标签中的id,
然后执行代码,就会出现不执行if中的第一个>30的条件*/
// span元素
var span=document.getElementById("span");
//设定一个恒定30的量
var total=30;
//设定当键盘按下时候的事件
document.onkeydown=function(){
var len=text.value.length;
var allow=total-len;
//如果输入的大于30则输出
if(len>30){
span.innerHTML="您输出的超过了"+(len-total)+"个字"
}
else{
span.innerHTML="您还可以输入"+(count.innerHTML=allow)+"个字"
//count.innerHTML=alow;
}
}
</script>
</body>
</html>
1回答
好帮手慕言
2020-06-03
同学你好,关于同学的疑问:是获取的元素有问题,正确写法如下:
另外:使用同学提供的代码测试,输入一个内容之后,提示还可以输入30个字,如下:这是不对的。
是onkeydown事件的问题,建议:改为onkeyup事件,如下:
如果我的回答帮到了你,欢迎采纳,祝学习愉快~
相似问题