Javascript 使用jQuery导航html集合

Javascript 使用jQuery导航html集合,javascript,jquery,html,Javascript,Jquery,Html,我正在用jQuery编写一个简单的程序,但我发现很难处理好收集 我有一个具有相同类的div元素列表,我用这行代码收集它们: var collection = $('.className').get(); 如果我打印集合,我会得到以下信息: w.fn.init(3) [div.className, div.className, div.className, prevObject: w.fn.init(1)] 这对我来说完全有道理。现在,我希望当用户单击此类元素时,它会从集合中删除单击的元素,但

我正在用jQuery编写一个简单的程序,但我发现很难处理好收集

我有一个具有相同类的div元素列表,我用这行代码收集它们:

var collection = $('.className').get();
如果我打印集合,我会得到以下信息:

w.fn.init(3) [div.className, div.className, div.className, prevObject: w.fn.init(1)]
这对我来说完全有道理。现在,我希望当用户单击此类元素时,它会从集合中删除单击的元素,但我找不到一种方法来标识在集合中单击的元素。我尝试了
index()

它返回:

未捕获类型错误:el.index不是函数 在coll.map.el(:2:8) 在Array.map()处 时间:1:6


我如何识别用某种独特的东西单击的元素,使我能够从集合中删除该div?

您可以跟踪这样的数组-您需要在该特定类型的集合中跟踪它吗

var tracking = [];
$('.test').on('click', function(){
  tracking.push($(this).index());
  $.unique(tracking);
  $('.result').html(JSON.stringify(tracking));
});

这里有一个问题:

这是因为
get()
将jQuery对象转换为元素对象,而它们没有
index()
方法。您说要“单击时从集合中删除元素”。标准的JS/jQuery方法与您当前拥有的相反。这将是在单击元素时添加/删除类,然后稍后在需要使用时(例如提交表单时)构建集合。这样,您就不必维护集合,也不必担心它与UI不同步。是要将其从集合中删除,还是从页面中删除?我想将其保留在页面上,但我想跟踪集合数组中单击的内容!就是这样,我想把它保留在页面上,但我想更新我的收藏!我现在明白了,我已经更新了我的答案。希望它能帮助一些人。这只是在数组中跟踪它,但您可以轻松地将其跟踪回任何类型的集合。
var tracking = [];
$('.test').on('click', function(){
  tracking.push($(this).index());
  $.unique(tracking);
  $('.result').html(JSON.stringify(tracking));
});