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

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

$(document).foo();

$(this)関数内の天気はどうすればわかり$(document)ますか?


この質問では、人々は提案しました

1. if (obj instanceof HTMLDocument)

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

3. $obj.is('html')

しかし、どれも機能しません。

4

2 に答える 2

9

シンプルにどうしよう…

if (this[0] === document)

...this内部の jQuery 関数は jQuery オブジェクト (HTML オブジェクトではありません) に対応します。このオブジェクトが空であっthis[0]ても、 は有効な式ですundefined

別の方法は、jQuery isメソッドを使用することです。

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

DOMElement...パラメータとしても受け入れます。

于 2013-03-22T14:27:35.760 に答える
0
$.fn.foo = function() {
    console.log(this[0] == document);
};

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

$(document).foo();
于 2013-03-22T14:41:48.007 に答える