Javascript 如何在数组中保存jQuery对象以供以后使用?

Javascript 如何在数组中保存jQuery对象以供以后使用?,javascript,jquery,object,save,Javascript,Jquery,Object,Save,我有一些用户正在用鼠标拾取的图标 我有这一系列的图标,我可以选择和设置它们的边框。我将选择的图标数量限制为5个。第一个选中的将成为黄色边框。接下来的4个是黑色边框 在document.ready上,我执行以下操作: $('img.selective')。单击(函数(){ 图像_单击(此);}) 对于CSS: .selectable { border: 3px solid #ebe6b3; float:left; margin:1px; } 对于HTML: <img

我有一些用户正在用鼠标拾取的图标

我有这一系列的图标,我可以选择和设置它们的边框。我将选择的图标数量限制为5个。第一个选中的将成为黄色边框。接下来的4个是黑色边框

在document.ready上,我执行以下操作:

$('img.selective')。单击(函数(){ 图像_单击(此);})

对于CSS:

.selectable {
    border: 3px solid #ebe6b3;
    float:left;
    margin:1px;
}
对于HTML:

<img class="selectable" src="img/first_icon.png">
图像中单击(e){..

在某个点上,我存储对象:

    $(e).data("order",clicked_img);

    x[clicked_img]=e;
当我把它拿出来的时候:

    alert(x[clicked_img].data("order"));
...}
但是。。。。 似乎我再也无法访问数据了。比如当对象离开jQuery领域时,它已经失去了它的公民权利。我不知道如何访问它的数据变量

救命啊!
谢谢!

您保存的是DOM元素,而不是jQuery对象。它应该是

x[clicked_img]=$(e);
不是

就像当对象离开jQuery领域时,它已经失去了它的civil属性 权利

简单的解决方案:将其放回jQuery领域。您有两个选择:

x[clicked_img] = $(e);
// ...
alert(x[clicked_img].data("order"));
或:

或:

现在不推荐使用后者,因为我不确定跨浏览器的含义,但无论如何,在“常规”JavaScript中就是这样做的


我建议使用第一种方法,在这种情况下,您还应该分配
$(e)
添加到
图像开头的变量\u单击
,这样它就不会每次都重建jQuery对象。

是的,这就是答案。很遗憾,我不能将你们两个都标记为已回答,只有一个。我标记了另一个答案,因为它更广泛,信息更丰富,但谢谢!
x[clicked_img]=$(e);
x[clicked_img]=e;
x[clicked_img] = $(e);
// ...
alert(x[clicked_img].data("order"));
x[clicked_img] = e;
// ...
alert($(x[clicked_img]).data("order"));
x[clicked_img] = e; // assuming e is the DOM element, not the event
// ...
alert(x[clicked_img].dataset.order);