代码之家  ›  专栏  ›  技术社区  ›  Kyle Hotchkiss

您将如何比较jquery对象?

  •  100
  • Kyle Hotchkiss  · 技术社区  · 15 年前

    所以我想知道如何比较两个jquery对象,看看父元素是否是页面的主体。

    以下是我的资料:

    if ( $(this).parent() === $('body') ) ...
    

    我知道这是错误的,但是如果有人知道我在做什么,他们能告诉我正确的方法吗?

    4 回复  |  直到 13 年前
        1
  •  157
  •   Christian C. Salvadó    15 年前

    您需要比较原始的DOM元素,例如:

    if ($(this).parent().get(0) === $('body').get(0))
    

    if ($(this).parent()[0] === $('body')[0])
    
        2
  •  59
  •   cletus    15 年前

    为什么不:

    if ($(this).parent().is("body")) {
      ...
    }
    

    ?

        3
  •  18
  •   tbranyen    13 年前

    不需要循环,不需要测试单个第一个节点。除了确保它们具有相同的长度和共享相同的节点之外,几乎不需要什么。这是一个小代码段。您甚至可能希望将其转换为jquery插件以供自己使用。

    jQuery(function($) {
      // Two separate jQuery references
      var divs = $("div");
      var divs2 = $("div");
    
      // They are equal
      if (divs.length == divs2.length && divs.length == divs.filter(divs2).length) {         
    
      // They are not
      } else {}
    });
    
        4
  •  2
  •   Salketer    13 年前

    我偶然发现了这些答案,想知道哪一个更好。这完全取决于您的需要,但最容易输入、读取和执行的当然是最好的。这是我做决定的性能测试用例。

    http://jsperf.com/jquery-objects-comparison