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

时间:2013-03-22 14:25:57

标签: jquery object document

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

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

$(document).foo();

如何判断函数内的$(this)天气是否为$(document)


this question中,人们建议

1. if (obj instanceof HTMLDocument)

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

3. $obj.is('html')

但它们都不起作用。

2 个答案:

答案 0 :(得分:6)

简单......

if (this[0] === document)

... jQuery函数中的this对应于jQuery对象(不是HTML对象)。即使此对象为空,this[0]仍然是有效表达式 - 它只是undefined

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

if ($(this).is(document))

...因为它也接受DOMElement作为参数。

答案 1 :(得分:0)

$.fn.foo = function() {
    console.log(this[0] == document);
};

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

$(document).foo();