你会如何比较jQuery对象?

时间:2010-03-13 01:58:19

标签: jquery compare

所以我试图弄清楚如何比较两个jQuery对象,看看父元素是否是页面的主体。

这就是我所拥有的:

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

我知道这是错的,但如果有人理解我所得到的,他们会指出我这样做的正确方法吗?

4 个答案:

答案 0 :(得分:157)

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

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

if ($(this).parent()[0] === $('body')[0])

答案 1 :(得分:59)

为什么不:

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

答案 2 :(得分:18)

不需要循环,不需要测试单个第一个节点。除了确保它们具有相同的长度并共享相同的节点之外,几乎不需要任何其他内容。这是一个小代码片段。您甚至可能希望将其转换为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 {}
});

答案 3 :(得分:2)

我偶然发现了这些答案,并想知道哪一个更好。这一切都取决于您的需求,但最简单的键入,读取和执行当然是最好的。这是我做出决定的性能测试用例。

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