我正在尝试将元素添加到关联数组中,它是 colors = []
我希望它有 ["id":selected_color]
但我的浏览器一直崩溃(某处无限循环?)
我不确定我是否正确地将元素添加到数组中。
我正在点击一个 span 元素,它的 ID 值设置为十六进制值,我试图捕获该值并将其与 selected._color
<script type="text/javascript" src="jquery-1.6.2.js"></script>
<script type="text/javascript">
var selected_color = "";
var colors = [];
$(document).ready(function() {
$(".color_cell").click(function(){
// ADD MY COLOR TO SELECTED COLOR'S ASSOCIATIVE ARRAY
colors[$(this).attr("id")] = selected_color;
console.log($(this).attr("id"));
$(this).css({'background-color':'white'});
$(this).unbind('click');
updateDisplay(colors);
alert("hi");
});
$(".btnColor").click(function(){
// MAKE SELECTED COLOR BE ME
alert("hey");
selected_color = $(this).attr("id");
}); // end button handler
}); // end ready()
function updateDisplay(colors) {
jQuery.each(colors, function(key, value) {
//it seems to crash here...
$("#storage_display").html("var "+$("#storage_display").html()+" " +value);
});
};
</script>
最佳答案
您将颜色定义为数组而不是对象。
你只需要正确地初始化它:
var colors = {}; // or new Object();
其他建议...这里真的不需要 jQuery.each。像这样迭代一个关联数组(我们不要争论你是否真的可以称它为关联数组的语义)看起来像这样:
function updateColors(colors)
{
for (var key in colors)
{
$("#storage_display").html("var "+$("#storage_display").html()+" " +colors[key]);
}
}
关于javascript - 在javascript中将元素添加到关联数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7004304/