所以我有一个“关联数组”的数组,即。对象,保持各种HTML元素的数据和一个其它参数,如下所示:获取Javascript中关联数组的数组索引
container[0] = { picker_canvas: document.getElementById("background_picker"),
color_canvas: document.getElementById("background_color"),
hex_text: document.getElementById("background_text"),
mouse_down: false };
container[1] = { picker_canvas: document.getElementById("textbox_picker"),
color_canvas: document.getElementById("textbox_color"),
hex_text: document.getElementById("textbox_text"),
mouse_down: false };
container[2] = { picker_canvas: document.getElementById("font_picker"),
color_canvas: document.getElementById("font_color"),
hex_text: document.getElementById("font_text"),
mouse_down: false };
每个容器有一个颜色选择器画布,颜色预览帆布,显示的十六进制颜色值的文本框的引用,并一个mouse_down布尔值。后来我通过这样的容器迭代初始化几个事件侦听器:
for (i=0; i<3; i++) {
container[i].picker_canvas.addEventListener("mousedown", function() {
container[i].mouse_down = true;
}, false);
container[i].picker_canvas.addEventListener("mouseup", function() {
container[i].mouse_down = false;
}, false);
container[i].picker_canvas.addEventListener("mousemove", function(evt) {
getColor(container[i], evt);
}, false);
container[i].hex_text.addEventListener("change", function(evt) {
drawColorSquare(container[i], evt.target.value)
}, false);
}
但是,这并不工作,因为我是不确定的,所以现在我正在试图做这样的事情,以获得正确的索引,但我不知道如何真正实现它在JavaScript
container[i].picker_canvas.addEventListener("mousedown", function(evt) {
container[container.indexof(evt.target)].mouse_down = false;
}, false);
基本上我需要搜索evt.target关联数组的数组,并使其返回数组的索引。所以,这甚至可能与任何内置的JavaScript函数或将我只需要自己做?
就这么你知道,Javscript不支持关联数组,它将它们作为对象来处理,所以你的术语是不正确的。 – 2012-07-13 19:58:56
亚历克斯是对的;那些不是“联合阵列”。你实际上有一个对象数组。 “picker_canvas”等是这些对象的属性。 – 2012-07-13 20:00:39
另外,可能有比我回答的更好的解决方案 - 我们能否看到您的HTML结构? – Ryan 2012-07-13 20:15:36