【问题标题】:jQuery: Check if jQuery object contains (includes) exact DOM elementjQuery:检查 jQuery 对象是否包含(包括)精确的 DOM 元素
【发布时间】:2011-01-14 04:01:57
【问题描述】:

我有一个对 DOM 元素的引用,以及一个作为选择器结果的 jQuery 对象,我想检查那个特定的 DOM 元素是否在那个 jQuery 对象中。如果没有遍历整个 jQuery 对象并检查是否相等,那么 jQuery 中有没有一种直接的方法可以做到这一点?

我试过.contains:contains.has:has,但似乎没有一个能胜任。另外,我应该提到我正在使用的所有元素都在同一个 DOM 树级别上,因此无需担心父母/孩子。

【问题讨论】:

  • 您需要更清楚自己在寻找什么。您的 ID 是否匹配?
  • 是的,我应该详细说明。 1. 我没有与这些元素关联的 ID。如果我这样做会容易得多。 2. 我的实际问题是确定一个元素是否存在于给定枢轴元素的前一个兄弟姐妹或下一个兄弟姐妹中。因此,所有需要父元素的解决方案,例如使用 .find() 的解决方案都不适用。

标签: jquery element contains exists selected


【解决方案1】:

类似于大卫的回答,但更苗条:

if ( obj.filter(el).length ) {
    // obj contains el
}

【讨论】:

    【解决方案2】:
    $yourJqueryObject.is(yourDomElement)
    

    参见 1.6 中添加的 .is()

    【讨论】:

      【解决方案3】:

      类似于 Gumbos 的答案,但更苗条:

      if ( obj.filter(function() { return this == el; }).length ) {
          // obj contains el
      }
      

      【讨论】:

        【解决方案4】:

        有点老套,但对我有用:

        $.inArray($('#single-element').get(0), $('.many-elements').get()) != -1
        

        【讨论】:

          【解决方案5】:

          试试这个:

          var result = $("selector").find("*").filter(function() {
              return this === elem;
          }).length === 1;
          

          elem 是您要查找的 DOM 元素。

          【讨论】:

          • 我在寻找什么。接受的答案缺少重要的 find("*") 部分。
          猜你喜欢
          • 1970-01-01
          • 2016-03-15
          • 1970-01-01
          • 2011-01-10
          • 1970-01-01
          • 2013-11-22
          • 2011-03-25
          • 2015-12-27
          • 1970-01-01
          相关资源
          最近更新 更多