通过 jQuery 比较元素

Compare Elements via jQuery

我想检查两个元素(一个被点击,另一个被引用)是否相同,我想做的是:

$("#process li").click(function() {
   currentElement = $(this);
   referenceElement = $("#process li:first-child");
   if (currentElement === referenceElement) {
        $(".mark").removeClass("mark");
        $(this).addClass("mark");
   }
});

所以我想要检查点击的 <li> 是否是 ul#process 的第一个子元素,如果是,首先从另一个元素中删除一个 .mark class 然后添加它到点击的那个。我没有得到任何工作结果 - 有人有想法吗?


更新:

非常感谢!这是我的解决方案:

$("#processlist li").click(function() {
  currentElement = $(this);
  if (currentElement.is('li:first-child')) {
    $(this).addClass("mark");
  }
});

现在,如果我单击

  • ,如果它是此列表的第一个子项,则会添加 class .mark - 太棒了!

  • JS比较对象很麻烦。最简单的方法是只选择几个关键属性并进行比较,例如:

    if (currentElement.prop('id') === referenceElement.prop('id') {
        // rest of your code...
    }
    

    但是,根据您的用例,您可以使用 is:

    if (currentElement.is('#process li:first-child')) {
        // rest of your code...
    }
    

    Example fiddle

    您需要从 jQuery 对象中提取 DOM 元素。为此,您可以使用 jQuery 的 get 方法。

    例如if( currentElement.get( 0 ) === referenceElement.get( 0 ) )