老师看下代码,最后超过30后删除多余也显示-1

来源:4-5 编程练习

yarwood

2020-09-12 22:12:42

<!DOCTYPE html>

<html>

<head lang="en">

<meta charset="UTF-8">

<title>输入文本</title>

</head>

<body>

<p>字数限制在30字内,<span>您还可以输入<b>30</b> 字</span></p>

<textarea cols="50"  rows="7"  id="text"></textarea>

<script type="text/javascript">

//获取文本框和b和span

var text=document.getElementById("text"),

lenth=document.getElementsByTagName("b")[0],

span=document.getElementsByTagName("span")[0],

total=30;

text.onkeyup=function(){

var len=this.value.length;

var  allow=total-len;

//判断字数小于等于30

if(len<=30){

lenth.innerHTML=allow;

}

else{

lenth.innerHTML=-allow

span.innerHTML="您已超出"+lenth.innerHTML+"字"

span.style.color="red";

}

}

</script>

</body>

</html>



写回答

3回答

好帮手慕言

2020-09-13

同学你好,如果输入的内容字数少于30,那么就会触发if,例如:

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

超出30个字,按删除键,字体颜色改为了黑色,代表执行的是if里面的语句。

整体效果可以按照第一次回复修改,祝学习愉快~

0

好帮手慕言

2020-09-13

同学你好,在超出的时候,直接给span的innerHTML赋值, 改变了html的结构,导致超出之后,就没有b这个标签了,所以删除到小于30的时候,无法再给b标签赋值了,所以无法实现效果。

建议:可以添加b标签,例如

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

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

0
harwood
h 这个方法最后触发了else,所以当大于30以后在小于30,字体颜色还是红色
h020-09-13
共2条回复

yarwood

提问者

2020-09-12

所以我的意思是删除到字数小于等于30的时候,会恢复的原来的格式

0

0 学习 · 40143 问题

查看课程