你会如何比较jQuery对象?

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

这是我有什么:

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

我知道这是错误的,但是如果有人明白我的意思,他们能否指出我正确的做法?

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

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

要么

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

为什么不:

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

不需要循环,不需要testing单个第一个节点。 除了确保长度相同并且共享相同的节点之外,几乎没有什么是必需的。 这是一个小的代码片段。 你甚至可能想把它转换成一个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 {} }); 

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

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