Javascript if语句忽略jQuery$(此)

Javascript if语句忽略jQuery$(此),javascript,jquery,if-statement,Javascript,Jquery,If Statement,我有一个这样的代码,专门针对if语句的问题编写: $("ul.pick").click(function(){ var kid = $(this).find("li.contactIn"); kid.addClass("current"); var parent = kid.parent(); if(parent == $(this)) { parent.addClass("somet

我有一个这样的代码,专门针对if语句的问题编写:

   $("ul.pick").click(function(){
      var kid = $(this).find("li.contactIn");
        kid.addClass("current");
        var parent = kid.parent();
         if(parent == $(this))
          {
            parent.addClass("something");
          }
   });
因此ul.pick是一个菜单按钮,li.contactIn是其子项,用于存储要显示的内容。 问题在if语句中。我做错了什么?我正在试着写代码,这将检查目前是否拉下来李。就是我现在正在点击的那个。如果是的话,代码应该把它拉上来。如果没有,李。应该拉下来。
提前感谢:)

问题是使用
$(this)
调用jQuery构造函数并创建jQuery对象。在JavaScript中,对象之间的比较总是错误的。您需要比较实际的元素

下面是一个完整的演示,显示了单击添加类的过程

$(“ul.pick”)。单击(函数(){
var kid=$(this.find(“li.contactIn”);
kid.addClass(“当前”);
var parent=kid.parent();
if(父[0]==this)//比较元素
{
父类addClass(“某物”);
}
});
.something{color:red;}
.current{边框:1px实心红色;}

  • contactIn

您正在比较引用。由于$(this)是一个全新的jQuery对象,因此它们永远不会匹配所有对象。要更正它,请使用.is()函数:[0]是什么意思?而且它似乎不起作用tho@JakubMałojło-
[0]
访问jQuery对象持有的底层本机元素。什么不起作用?它只是没有将类添加到元素中clicked@JakubMałojło-看演示,它工作得很好。问题一定在其他地方。@JakubMałojło-jQuery内部包含一个与选择器匹配的元素数组。该数组通过类似于访问器的数组公开。通过使用带有索引的
[]
来访问数组索引。使用0作为索引将返回数组中的第一个元素。在本例中,它是我们的父元素。如果有多个元素,也可以通过这种方式访问它们(例如[1]、[2]等)。还有一个可选的jQuery函数,名为
.get()<代码>获取(0)
[0]
值方式相同。