[英]Fill Html Selection “Color” by JavaScript
我想通過Script
填充我的顏色選擇。 當我要填充顏色菜單時,請使用以下代碼:
function FillFontColorMenu() {
FillSelection(GetPossibleColors(), "fontColorMenu"); // Color of the Font
}
function FillBackgroundColorMenu() {
FillSelection(GetPossibleColors(), "backgroundColorMenu"); // Background Color
}
function GetPossibleColors() { // Create an Array of Colors
var possibleColors = [];
possibleColors.push(0x333333); // Add Color x
possibleColors.push(0x666666);
possibleColors.push(0x999999);
return possibleColors; // Return the Colors
}
function FillSelection(possibleValues, elementId) { // Fill the Selection with the Colors
for(var i = 0; i < possibleValues.length; i++) {
var optionElement = "<option value='" + possibleValues[i] + "'>" + possibleValues[i] + "</option>"; // Pass in the Colors
$('#'+elementId).append(optionElement);
}
}
如何將顏色存儲到Array
? 是否必須將值存儲為RGB
代碼? 我可以使用此顏色Array
並在“ FillingMethod”中傳遞顏色嗎? 有沒有辦法做到這一點,還是我的想法胡扯,永遠都行不通?
我試圖創建一個顯示我的問題的JsFiddle: Fiddle
您將顏色作為十六進制數字存儲在Array
中, JavaScript
將所有數字視為雙精度浮點數 。 在option
中將顏色作為文本插入時,需要將數字轉換為String
。 我建議您使用Number
對象的toString
方法,將16
作為基數發送以獲取數字的十六進制表示形式:
FillFontColorMenu(); FillBackgroundColorMenu(); function FillFontColorMenu () { FillSelection(GetPossibleColors(), "fontColorMenu"); } function FillBackgroundColorMenu () { FillSelection(GetPossibleColors(), "backgroundColorMenu"); } function GetPossibleColors () { var possibleColors = []; possibleColors.push(0x333333); // TEST possibleColors.push(0x666666); // TEST possibleColors.push(0x999999); // TEST return possibleColors; } function FillSelection (possibleValues, elementId) { for(var i = 0; i < possibleValues.length; i++) { var optionElement = "<option value='" + possibleValues[i] + "'>#" + possibleValues[i].toString(16) + "</option>"; $('#'+elementId).append(optionElement); } }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <select id="fontColorMenu"></select> <select id="backgroundColorMenu"></select>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.