老师,请问这个情况是什么原因

来源: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

同学你好,关于同学的疑问:是获取的元素有问题,正确写法如下:

http://img.mukewang.com/climg/5ed70130091d020607680154.jpg

另外:使用同学提供的代码测试,输入一个内容之后,提示还可以输入30个字,如下:这是不对的。

http://img.mukewang.com/climg/5ed6ff7e09c3492d11330483.jpg

是onkeydown事件的问题,建议:改为onkeyup事件,如下:

http://img.mukewang.com/climg/5ed7031c09941f6804320130.jpg

如果我的回答帮到了你,欢迎采纳,祝学习愉快~

0

0 学习 · 40143 问题

查看课程