2017-01-16 33 views
-4

我正在使用Jquery從我正在處理的網站執行某些操作;我正在做一些請求,並從我得到的數據中獲得一些具有顏色名稱的值,並將它們存儲在一個數組中;我想要做的是改變每一個的顏色,因爲有時每個請求都有不同的顏色。動態更改陣列中文本的顏色

I.E.用戶請求;從數據中獲得綠色和紅色值,然後將它們發送到頁面我想將綠色的顏色更改爲綠色,將紅色更改爲紅色。如果有另一個請求,而這次的顏色是藍色和黃色,我想用上面的過程再次改變顏色。

這是我有:

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()}`); 
} 

我不完全時遇到錯誤;我只想知道如何做到這一點。這就是我所擁有的,它以正確的順序顯示名稱,但我想更改單詞的顏色。每個請求數組中最多有兩個單詞。

+1

顯示你所擁有的,你所面臨的問題done..show代碼。 –

+0

'$(selector).css('background-color','red');' –

+0

好的;我編輯它。和@CircleHsiao,是的,我知道這一點,但事情是我想改變確切的單詞,如果它在數組中。就像,看看這個單詞是否在數組中,如果它在數組中,改變顏色。 – miguel

回答

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>

+0

這就是它,做了一些調整,並得到它的工作。謝謝你的幫助。 – miguel

0

還是不太確定你在找什麼。 然而,根據您的評論

看到,如果字是數組中,如果是在陣列中,改變顏色

因此,這是你需要什麼? ref

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

使用例如

​​

& jQuery的

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

嗯,不完全一樣。很抱歉,我沒有更深入地解釋我的問題。我會再試着在這裏解釋。我做了一個請求,請求發送回數據,並將數據的部分顏色存儲到數組中。現在他們在這個數組中,我想改變每個單詞的TEXT的顏色。如果從數據中獲得紅色和綠色作爲HTML中的顏色,我希望將紅色字詞和綠色字詞放在一起。只有每一個的文字。顏色可以在每個請求上改變,但我會照顧到這一點。在HTML中,它們在不重要的空間中打印爲「綠色/紅色」。 – miguel