我正在尝试创建一个函数,该函数将继续以这种格式将所选颜色ID添加到我的#storage_disply中:
var name_of_array = ["#xxxxxx", "#xxxxxx", etc]
<script type="text/javascript" src="jquery-1.6.2.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var selected_color = [];
var ids = [];
var black_colors = [];
var blue_colors = [];
var brown_colors = [];
var gray_colors = [];
var green_colors = [];
var orange_colors = [];
var pink_colors = [];
var purple_colors = [];
var red_colors = [];
var teal_colors = [];
var white_colors = [];
var yellow_colors = [];
$(".color_cell").click(function(){
// ADD MY COLOR TO SELECTED COLOR'S ARRAY
selected_color.push($(this).attr("id"));
console.log($(this).attr("id"));
$(this).css({'background-color':'white'});
$(this).unbind('click');
updateDisplay(selected_color);
});
$(".btnColor").click(function(){
// MAKE SELECTED COLOR BE ME
if ($(this).attr("id") == "black") {
selected_color = black_colors;
}
else if ($(this).attr("id") == "blue") {
selected_color = blue_colors;
}
else if ($(this).attr("id") == "brown") {
selected_color = brown_colors;
}
else if ($(this).attr("id") == "gray") {
selected_color = gray_colors;
}
else if ($(this).attr("id") == "green") {
selected_color = green_colors;
}
else if ($(this).attr("id") == "orange") {
selected_color = orange_colors;
}
else if ($(this).attr("id") == "pink") {
selected_color = pink_colors;
}
else if ($(this).attr("id") == "purple") {
selected_color = purple_colors;
}
else if ($(this).attr("id") == "red") {
selected_color = red_colors;
}
else if ($(this).attr("id") == "teal") {
selected_color = teal_colors;
}
else if ($(this).attr("id") == "white") {
selected_color = white_colors;
}
else if ($(this).attr("id") == "yellow") {
selected_color = yellow_colors;
}
}); // end button handler
}); // end ready()
function updateDisplay(colors) {
jQuery.each(colors, function(key, value) {
//var test_colors = ["#000000", "#FFFFFF"];
//display var
$("#storage_display").html("var "+$("#storage_display").html()+" " +value);
});
}
</script>
<br>
<br>
<button type="button" class="btnColor" id="black">Black</button>
<button type="button" class="btnColor" id="blue">Blue</button>
<button type="button" class="btnColor" id="brown">Brown</button>
<button type="button" class="btnColor" id="gray">Gray</button>
<button type="button" class="btnColor" id="green">Green</button>
<button type="button" class="btnColor" id="orange">Orange</button>
<button type="button" class="btnColor" id="pink">Pink</button>
<button type="button" class="btnColor" id="purple">Purple</button>
<button type="button" class="btnColor" id="red">Red</button>
<button type="button" class="btnColor" id="teal">Teal</button>
<button type="button" class="btnColor" id="white">White</button>
<button type="button" class="btnColor" id="yellow">Yellow</button>
截至目前,它显示:var var var var var var 6010b0 6010b0 9010b0 6010b0 9010b0 f010b0
我对此很陌生,我不明白如何在字符串中输入数组名称。
提前致谢!
答案 0 :(得分:1)
试试这个:
function updateDisplay(colors) {
$("#storage_display").text("var name_of_array = [" + colors.join(", ") +"]");
}
join
将您的数组中的元素连接在一起,并由传递给它的参数分隔。无需自行循环。
答案 1 :(得分:1)
不需要循环。只需加入数组并在需要时添加一些额外的字符串:
function updateDisplay(colors) {
var allColors = "\"#" + colors.join("\", \"#") + "\"";
$("#storage_display").html("var name_of_array = [" + allColors + "]");
}
修改以自定义数组名称,将this.id
传递给updateDisplay()
:
$(".color_cell").one("click", function() {
selected_color.push(this.id);
$(this).css({'background-color':'white'});
updateDisplay(selected_color, this.id);
});
function updateDisplay(colors, name) {
var allColors = "\"#" + colors.join("\", \"#") + "\"";
$("#storage_display").html("var " + name + "_colors = [" + allColors + "]");
}