如何以编程方式检测对象是否是一个jQuery对象?

时间:2011-02-25 16:23:02

标签: javascript jquery

如何以编程方式检测对象是否是jQuery对象?例如:

// 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 ] */

3 个答案:

答案 0 :(得分:9)

最简单的API记录方法是测试.jquery属性:

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

但是,如果你想确定它是一个jQuery对象,而不是一个带有假.jquery属性的其他对象,那么其他答案建议instanceof jQuery并测试构造函数也工作。

.jquery属性正式表示jQuery版本,但API示例使用它来测试对象是否是jQuery对象。)

答案 1 :(得分:4)

有几种方法,但最明显的(在我看来)是:

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

答案 2 :(得分:4)

我认为你可以依靠

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

但我也发现了这些方法here

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