$.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')
但它们都不起作用。
答案 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();