Javascript 如何将jQuery返回的元素与保存在数组中的元素进行比较?

Javascript 如何将jQuery返回的元素与保存在数组中的元素进行比较?,javascript,jquery,arrays,Javascript,Jquery,Arrays,我正在将一些元素保存到数组中,以便以后能够确定我单击了其中的哪一个元素,但我的方法不起作用。(稍后,我将使用数组索引来计算一些内容)。下面的if语句永远不会变为“true”。怎么了?停 $(document).ready(function() { var teamList = []; $('#team-list').children(".team-member").each(function() { teamList.push($(this)); })

我正在将一些元素保存到数组中,以便以后能够确定我单击了其中的哪一个元素,但我的方法不起作用。(稍后,我将使用数组索引来计算一些内容)。下面的if语句永远不会变为“true”。怎么了?停

$(document).ready(function() {    
  var teamList = [];

  $('#team-list').children(".team-member").each(function() {       
    teamList.push($(this));
  });

  $('#team-list').on("click", ".team-member", function() {
    console.log("click");        
    for (i = 0; i < teamList.length; i++) { 
      console.log("The element was");
      console.log($(this));
      console.log("and the loop is on");
      console.log(teamList[i]);

      if ($(this) == teamList[i]) {
        console.log("it was true");
      }
    };    
  });    
});
$(文档).ready(函数(){
var teamList=[];
$(“#团队列表”).children(“.team member”).each(function(){
推送($(此));
});
$(“#团队列表”)。在(“单击”,“团队成员”,函数()上){
控制台日志(“单击”);
对于(i=0;i
您需要这个

if($(this).html() === $(teamList[i]).html())

这是一个有效的解决方案-

您无法使用JS直接比较对象。您需要比较元素的一些属性,例如它们的
id
。也就是说,你的逻辑是多余的。你到底想实现什么?基本上,我会有一个团队成员肖像的列表,这些肖像有一个带引导的列宽,所以他们会在计算机上每行排列三张,在较小的屏幕上每行排列两张,在手机上每行排列一张。(由于此原因,无法使用引导“行”)。当您使用图像的数组索引单击图像时,我将计算图像在每行中的行和位置。然后,当用户单击时,我将在该行下显示一个包含一些内容的div。为了将来的参考,最好询问您的目标,而不是您尝试的解决方案。关于您尝试执行的操作,计算位置很好,但是不需要为此比较数组中的任何对象。只需在
中使用
$(this)
引用,单击事件处理程序,然后使用
offset()
获取该元素在屏幕上的位置。阅读您正在尝试的内容,您会使这种方法比需要的更困难。试着用一个简单的例子来说明你在引导过程中遇到的问题,并在这方面寻求帮助。有几种方法可以实现您在这个问题中提出的要求,但它们大多是解决了错误的问题。我测试了offset()以了解它的工作原理,但它会根据屏幕宽度返回不同的数字。例如,三人一行中最左边的团队成员在大屏幕上的偏移量与小屏幕上的偏移量不同(两个都足够容纳一行中的三个项目)。我如何准确地使用偏移坐标来确定项目是行中最左边、中间还是最右边的项目?我需要以某种方式分别标识它们,这样仅仅获取html就不起作用了。然后,您可以用attr(“id”)替换html,并将id指定给每个div