动态更改数组中文本的颜色

时间:2017-01-16 01:47:18

标签: javascript jquery css

我正在使用Jquery从我正在处理的网站上做一些事情;我正在做一些请求,从我得到的数据中有一些带有颜色名称的值,我将它们存储在一个数组中;我想要做的是改变每一个的颜色,因为有时每个请求都有不同的颜色。

即。用户确实要求;从数据中有一个绿色和红色值,在将它们发送到页面之前我想将绿色变为绿色,红色变为红色。如果另外请求并且这次的颜色是蓝色和黄色,我想用上面的过程再次改变颜色。

这就是我所拥有的:

var typeArr = [];
for (let l in data.types) {
        typeArr.unshift(data.types[l].type.name); //data.types is the data from the request
    }

//This is the appended info at the page
$('#types').html(`${typeArr[0].capitalizeFirstLetter()}`);
if (typeArr[1] !== undefined)
{
    $('#types').append(`/${typeArr[1].capitalizeFirstLetter()}`);
}

我没有遇到错误;我只是想知道如何做到这一点。这就是我所拥有的,它以正确的顺序显示名称,但我想改变单词的颜色。每个请求的数组中最多有2个单词。

2 个答案:

答案 0 :(得分:1)

如果你想用它的颜色装饰每个单词,你需要将它包装在一个html标签中,在这种情况下,我使用<span></span>作为例子。

$("#testme").click(function (){
    var arr = [ "Red", "Blue"];
    var selectedWord = "Red";

    if( $.inArray(arr, selectedWord) ){
       var newtext = $("<span>"+selectedWord+"</span>").css("color", selectedWord.toLowerCase());
       $("#myDiv").append(newtext);

    }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="myDiv">Text will appear here.</div>
<button id="testme">Test me!</button>

答案 1 :(得分:0)

仍然不确定你在寻找什么。 但是,根据你的评论

  

查看单词是否在数组中,如果它在数组中,则更改颜色

这就是你需要的吗? ref

jQuery.inArray( value, array [, fromIndex ] )

用法例如

<div id="myDiv">something</div>

&安培; jquery的

var arr = [ "Red", "Blue"];
if(jQuery.inArray("Blue", arr)>0){
   $("#myDiv").css('background-color', 'blue');
}