如何用js改变字符串中固定下标的字符的颜色

如何用js改变字符串中固定下标的字符的颜色

通过点击按钮,将一个文本框中获得的文本的单词或者词组的颜色设置为红色,将结果返回到一个空的按钮内。

<html>

<head>

<meta charset="UTF-8">

<title>文本对比</title>

<link rel="stylesheet" type="text/css" href="jisuanqi.css">

<script type="text/javascript" src="jisuanqi.js"></script>

</head>

<body onload="init()">

<div class="div">

<div class="div1">

<textarea id="text1"></textarea>

</div>

<div class="div2">

<input type="button" id="btn1" value="对比">

<input type="button" id="btn2" value="返回">

</div>

<div class="div3">

<textarea id="text2"></textarea>

</div>


<input type="button" id="btn3">

<input type="button" id="btn4">



</div>

</body>

</html>







function init(){

var text1=document.getElementById("text1");

var text2=document.getElementById("text2");

var btn1=document.getElementById("btn1");

var btn2=document.getElementById("btn2");

var btn3=document.getElementById("btn3");

var btn4=document.getElementById("btn4");

var a;

var b;

var n=[];

var m=[];

var shu;

btn1.onclick=function(){

a=text1.value;

b=text2.value;

var i=0;

var j=2;

var o;

shu=0;

while(i<a.length-1){

j=2;

o=2;

while(j<=a.length-i){

if(b.search(a.substr(i,j))!=-1){

o=j;

j++;

}else{

n[shu]=i;

m[shu]=j-1;

shu=shu+1;

i=i+j-1;

o=j;

j=a.length+1;

}

}

n[shu]=i;

m[shu]=o-1;

i=i+o;

o=0;

}

alert("n="+n);

alert("m="+m);


var arr=a.substr(0,2).fontcolor("red");

var st=a.replace('/12/',arr);

btn3.value=arr;


}


btn2.onclick=function(){

text1.value="";

text2.value="";

}

}



相关截图:

http://img1.sycdn.imooc.com//climg/607402af097f3f9032370925.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
好帮手慕阿满 2021-05-06 16:20:54

同学你好,不需要<input type="text">。

根据同学的代码,同学是将arr赋值给btn3,如:

http://img1.sycdn.imooc.com//climg/6093a68d09c4d92a04030126.jpg

这里将btn3设置为div,设置样式,如:

http://img1.sycdn.imooc.com//climg/6093a6a6090d65db13090090.jpg

使用innerHTML将arr赋值给btn3,如:

http://img1.sycdn.imooc.com//climg/6093a6b50945f42904480092.jpg

效果如下:

http://img1.sycdn.imooc.com//climg/6093a6e109780ff702580189.jpg

祝学习愉快~


  • 提问者 慕粉1388342 #1

    好的,已成功!

    2021-05-07 11:03:55
  • 提问者 慕粉1388342 #2

    emmm,这个一次替换能成功改变某几个字符串的颜色,但是多次替换结果就不对了,就比如1234567我要把12和67换成红色,需要进行两次替换,结果就有问题了

    2021-05-07 11:32:37
  • 好帮手慕阿满 回复 提问者 慕粉1388342 #3

    同学你好,这个可能是代码逻辑有问题。建议同学将代码要完成什么功能详细描述一下,并将修改后的代码都贴一下,包括html,css,js等代码,方便我们查看具体问题。

    祝学习愉快~

    2021-05-07 13:47:56
好帮手慕阿满 2021-05-06 14:21:13

同学你好,同学是指<input type="text">标签吗?input标签中的文本是使用value进行设置的,不能在<input>标签中增<font>标签。

同学可以使用div标签设置试试。

设置div标签,然后设置样式。在js中,获取标签后,使用innerHTML给div设置内容,如:

http://img1.sycdn.imooc.com//climg/60938acf09be540603530064.jpg

祝学习愉快~

  • 提问者 慕粉1388342 #1

    <input type="text">标签外面加div标签的话,改变的是整体的样式吧?(只能将整段话改变颜色)但是我的需求是将一段话里面的部分的字的颜色改成红色

    2021-05-06 14:25:57
  • 提问者 慕粉1388342 #2

    <input type="text">标签外面加div标签只能改变整体的样式吧?就是要改变就改变了整段话的颜色,但是我的需求是改变一段话里面部分字的颜色

    2021-05-06 14:28:26
好帮手慕阿满 2021-04-12 18:09:33

同学你好,同学将<font color="red"><font>标签写入了<textarea>标签中,该标签中的内容只能是文本,所以会显示<font color="red"><font>,而不会被解析。或者同学可以换一个标签再试试。

祝学习愉快~

  • 提问者 慕粉1388342 #1

    text标签能解析么?如果能解析的话,能不能将text的文本展示成像textarea那样的大框?

    2021-05-06 11:23:49
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师