我有这个长字符串,我希望它的一部分只用JavaScript转换成白色。
示例1:
var string = document.getElementById("subtitle").innerHTML; //returns the string
var i = string.indexOf("("); //returns 80
var j = string.indexOf(")"); //return 93
示例2:我可以获得想要的文本,但我不知道如何将其更改为白色
var string = document.getElementById("subtitle").innerHTML; //returns the string
var i = string.indexOf("(");
var j = string.substring(i, string.indexOf(")")+1); //return the exact string I want to paint white
//j.paintWhite(); how?
我想在位置80和93之间绘制所有字符(或选择如示例#2所示)白色。我该怎么办?
答案 0 :(得分:2)
您需要为该文本创建一个html容器,您可以在其中指定样式属性。
另外,不要使用变量名称string
,因为它是为语言保留的
为了做到这一点,我建议使用jQuery,因为它更容易一些。
但如果你不想,你可以这样做:
var text = document.getElementById("subtitle").innerHTML;
var cut = text.split("(");
var cut2 = cut[1].split(")");
var colored = cut[0] + '<span style="color:#fff;">('+cut2[0]+')</span>'+cut2[1];
document.getElementById("subtitle").innerHTML = colored;
答案 1 :(得分:1)
如果你认为&#34;变成白色&#34;正在做
<span style="color:#fff">MY_TEXT_HERE</span>
然后您可以尝试使用以下数组:
var string = document.getElementById("subtitle").innerHTML;
var arr1 = string.split('(');
var arr2 = arr1[1].split(')');
var finalString = arr1[0] + '<span style="color:#fff">' + arr2[0] + '</span>' + arr2[1];
答案 2 :(得分:0)
您必须修改元素的内部Html,使其具有嵌套有defind样式的文本元素。
var element = document.getElementById("subtitle");
var htmlText = element.innerHTML;
var i = htmlText.indexOf("(");
var j = htmlText.indexOf(")")+1;
var redText = htmlText.substring(i, j);
element.innerHTML = htmlText.substring(0,i)+"<a style='color:red;'>"+redText+"</a>"+htmlText.substring(j);