检查当前上下文是否是jQuery堆栈

时间:2011-11-15 16:45:43

标签: javascript jquery

例如,我需要检查当前上下文是否是jQuery堆栈。你会怎么做?忽略方法检查。这是一个丑陋的解决方案。 :)

例如:

if(it_is_jquery_stack_context) {
// do some stuff with jQuery support
}
else {
// do some  stuff without it
}

更新

例如:

if(typeof this.get=='function' && this.length && this.get(0)===dom_ element) { 
   // do some stuff
}

最后一个问题是:

如何检查this.get(0)是否是dom元素的实例?

3 个答案:

答案 0 :(得分:1)

真的只是猜测你的问题,但如果你想检查this是否引用了jQuery对象,你可以这样做:

if( "jquery" in this ) { //lowercase intended
// do some stuff with jQuery support
}
else {
// do some  stuff without it
}

请注意,jQuery对象是指jQuery对象,而不是jQuery名称空间..因为"jquery" in jQuery为false,但"jquery" in jQuery("div")为真。

  

最后一个问题是:

     

如何检查this.get(0)是否为dom元素的实例?

例如:

this[0] && this[0].nodeType && this[0].nodeType === 1

但这没用,因为jQuery对象并不总是有dom节点。

答案 1 :(得分:1)

你可以这样做来检查this以查看它是否是一个jQuery对象:

if (this.jquery)
{
    //this is a jquery object so you can act accordingly
}
else
{
    //this is not a jQuery object, you can do $(this) to make it into one if it's a DOM object
}

答案 2 :(得分:0)

您可以执行以下任一操作:

if (jQuery) {  
    // jQuery is loaded  
} else {
    // jQuery is not loaded
}

if (typeof jQuery == 'undefined') {  
    // jQuery is not loaded  
} else {
    // jQuery is loaded
}