通过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 类,然后将其添加到单击的元素中。我没有得到任何工作结果 - 有人的想法吗?


更新:

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

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

现在,如果我单击一个

  • ,如果它是此列表的第一个子项,则会添加类 .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...
    }
    

    示例小提琴

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

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

    相关内容

    • 没有找到相关文章

    最新更新