开发者

How to programmatically detect if an object is a jQuery object?

How can I programmatically detect if an object is a jQuery object? For example:

// 1. declare some variables
var vars = [1, 'hello', ['bye', 3], $(body开发者_运维技巧), { say: 'hi' }];

// 2. ??? : implement function that tests whether its parameter is a jQuery object
function isjQuery(arg) { /* ??? */ }

// 3. profit
var test = $.map(vars, isjQuery); /* expected [ false, false, false, true, false ] */


The easiest API-documented way is to test for the .jquery property:

function isjQuery(arg) {
    return !!arg.jquery;
}

However, if you want to be sure it's a jQuery object and not some other object with a fake .jquery property, the other answers suggesting instanceof jQuery and testing the constructor work too.

(The .jquery property is formally a string indicating the jQuery version, but the API example uses it to test whether an object is a jQuery object.)


I think you can rely on

if ( vars[i] instanceof jQuery ) {
  // do something with this jQuery object
}

but I also found these methods here:

obj && obj.constructor == jQuery 
obj && obj.jquery 


There are several ways, but the clearest (in my opinion) would be:

function isjQuery(arg) { return arg instanceof jQuery; }
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜