JavaScript - 更改某些索引上的字体颜色

时间:2014-08-26 13:53:19

标签: javascript html

我有这个长字符串,我希望它的一部分只用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所示)白色。我该怎么办?

3 个答案:

答案 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样式的文本元素。

http://jsfiddle.net/gsexxsbs/

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);