[英]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.