你会如何比较jQuery对象?

Kyl*_*iss 101 jquery compare

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

这就是我所拥有的:

if ( $(this).parent() === $('body') ) ...
Run Code Online (Sandbox Code Playgroud)

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

CMS*_*CMS 157

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

if ($(this).parent().get(0) === $('body').get(0))
Run Code Online (Sandbox Code Playgroud)

要么

if ($(this).parent()[0] === $('body')[0])
Run Code Online (Sandbox Code Playgroud)

  • `$(this).parent().is('body')`更具可读性IMO. (16认同)
  • 可缩短为:if(this.parentNode === document.body); (2认同)

cle*_*tus 59

为什么不:

if ($(this).parent().is("body")) {
  ...
}
Run Code Online (Sandbox Code Playgroud)


tbr*_*yen 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 {}
});
Run Code Online (Sandbox Code Playgroud)