检查'this'是$(this)还是只是普通的'this'

我有一个功能:

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

现在有时,myFunction被$(this)作为上下文调用,但有时上下文只是'this'。

在一行中,我该怎么做类似这样的事情:

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

基本上是一个测试,看看'这'是一个jQuery'this'还是一个JS'this'。

可能?


if (this.jquery) { // refers to jQuery version
  // jQuery object
}

或者:

if (this instanceof jQuery) { // prototype chain
  // jQuery object
}

但是,正如其他人所说的那样,它并不重要, $(this)将起作用,不管this是否已经是jQuery对象或DOM元素。


this是一个jQuery对象或者它不是时,你也可以做var e = $(this)


处理它的一种方法就是始终将其包装在$(...) 。 包装一个像这样的jQuery对象创建一个克隆(请参阅jQuery文档),所以这个HTML:

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

与此JS:

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

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

会正确弹出“测试”。

链接地址: http://www.djcxy.com/p/83935.html

上一篇: Check if 'this' is $(this) or just plain old 'this'

下一篇: How to know an object is jQuery object or not