如何在jQuery函数中判断对象是否为$(document)?

use*_*156 0 jquery document object

$.fn.foo = function() {
    console.log($(this));
};

$("#foo").foo();

$(document).foo();
Run Code Online (Sandbox Code Playgroud)

如何判断$(this)功能内部的天气$(document)


这个问题上,人们建议

1. if (obj instanceof HTMLDocument)

2. if (Object.prototype.toString.call(obj) == "[object HTMLDocument]")

3. $obj.is('html')
Run Code Online (Sandbox Code Playgroud)

但它们都不起作用.

rai*_*7ow 8

怎么样简单......

if (this[0] === document)
Run Code Online (Sandbox Code Playgroud)

...因为this内部jQuery函数对应于jQuery对象(而不是HTML对象).即使这个对象是空的,this[0]仍然是一个有效的表达式 - 它只是undefined.

另一种方法是使用jQuery 方法:

if ($(this).is(document))
Run Code Online (Sandbox Code Playgroud)

......因为它也接受了DOMElement作为一个参数.