3

私は1つの機能を持っています:

function myFunction(){
var id = $(this).attr('id');
}

コンテキストとして $(this) を使用して myFunction が呼び出されることがありますが、コンテキストが単に 'this' である場合もあります。

1行で、次のようなことを行うにはどうすればよいですか:

if(this == $(this)){
var e = $(this);
}

基本的に、'this' が jQuery の 'this' か JS の 'this' かを確認するテストです。

可能?

4

4 に答える 4

2

これに対処する 1 つの方法は、常に でラップすることです$(...)。そのように jQuery オブジェクトをラップすると、クローンが作成されます ( jQuery のドキュメントを参照)。したがって、この HTML は次のようになります。

<a href="test" id="​​​​​​​​​​​​​​​​​​​​​​​​​test-link">Test Link</a>​​​​​​​​​​​​​​​​​​​​​​​

このJSで:

​var link = $('#test-link');
var doubleWrappedLink = $(link);

alert(doubleWrappedLink.attr('href'));​​​​​​​

「テスト」が正しくポップアップします。

于 2012-08-21T16:04:04.323 に答える
0

次のスニペットを使用できます。

if (obj instanceof jQuery || 'jquery' in Object(obj)) { }

見てみましょう:オブジェクトが jQuery オブジェクトかどうかを確認します

于 2014-07-28T23:05:36.683 に答える