检测jQuery对象

Mot*_*tie 3 javascript jquery object

我正在为jQuery编写一个插件,我希望这样做,以便用户可以以任何形式将数据传递给插件.我解决了JSON或数组问题,但我无法确定数据是否是jQuery对象.

data = $('#list li');
console.debug( $.isPlainObject(data) );   // false
console.debug( $.isArray(data) );         // false
console.debug( data[0].tagName == "LI" ); // true, but see note below
Run Code Online (Sandbox Code Playgroud)

最后一个方法返回true,但不保证用户正在LI为其数据使用标记,所以我想我需要这样的东西:

if ( $.isjQueryObject(data) ) { /* do something */ }
Run Code Online (Sandbox Code Playgroud)

有谁知道更好的方法?

CMS*_*CMS 9

jQuery对象(或其别名$)是一个普通的构造函数,所有的jQuery对象从继承jQuery.prototype对象(或它的别名jQuery.fn).

您可以使用instanceof运算符或isPrototypeOf方法检查其他对象的原型链中是否存在对象,例如:

function isjQueryObject(obj) {
  return obj instanceof jQuery;
}
Run Code Online (Sandbox Code Playgroud)

要么:

function isjQueryObject(obj) {
  return jQuery.fn.isPrototypeOf(obj);
}
Run Code Online (Sandbox Code Playgroud)