Javascript 如何检测参数是jQuery对象
我想创建一个可以与Id一起使用或通过传递jQuery对象来使用的函数Javascript 如何检测参数是jQuery对象,javascript,jquery,Javascript,Jquery,我想创建一个可以与Id一起使用或通过传递jQuery对象来使用的函数 var $myVar = $('#myId'); myFunc($myVar); myFunc('myId'); function myFunc(value) { // check if value is jQuery or string } 如何检测传递给函数的参数类型 注意
var $myVar = $('#myId');
myFunc($myVar);
myFunc('myId');
function myFunc(value)
{
// check if value is jQuery or string
}
如何检测传递给函数的参数类型
注意问题不一样。我不想像
#id.myClass
那样传递选择器字符串。我想像示例中那样传递jQuery对象。使用typeof
操作符
if ( typeof value === 'string' ) {
// it's a string
} else {
// it's something else
}
或者确保它是jQuery对象的实例
if ( typeof value === 'string' ) {
// it's a string
} else if ( value instanceof $) {
// it's a jQuery object
} else {
// something unwanted
}
检查参数的类型还不够吗
function myfunc(arg)
{
if(typeof arg == 'string')
{
}
else if(typeof arg == 'object')
{
}
}
检查此项。尝试以下操作:
function myFunc(value)
{
if(typeof value === 'object') {
}
else{
}
}
注意:是否在控制台中执行此操作:
> jQuery
function (a,b){return new e.fn.init(a,b,h)}
> var value = jQuery
undefined
> value
function (a,b){return new e.fn.init(a,b,h)}
> value === jQuery
true
每个jquery对象都有一个属性
jquery
。当然,如果您的对象具有jquery
属性,则此操作将失败……但是如果您需要,可以进行更严格的检查
function(o) {
if(typeof o == 'object' && o.jquery) // it's jquery object.
}
尝试使用typeof,例如:
var $myVar = $('#myId');
myFunc($myVar);
myFunc('myId');
function myFunc( value ){
// check if value is jQuery or string
switch( typeof value ) {
case 'object':
// is object
break;
case 'string':
// is string
break;
// etc etc.
}
}
jQuery对象不是“jQuery选择器”;它是一个物体。选择器是一个带有CSS选择器语法的字符串。如果你想检测一个jQuery对象,那么(勒芒:检测jQuery对象的实例)就是答案。在我脑子里,只要检查变量是字符串还是对象?
值的类型
永远不会为null
。你是说value!=空
?@jamesalardice,是的,这就是我的意思。修好了。谢谢。这不考虑NULL,它也有Type Of=“Objt”。jQuery对象“false”=“代码> value = = jQuery < /Cord> >对于JQuery本身来说是错误的,而不是它的实例。您需要instanceof
运算符@RGB-请注意,typeof
是一个运算符,而不是一个函数,因此您不需要括号(括号不会引起任何问题,但没有括号可以更清楚)。嗯,是的,它有..:P但我看到你有一个解决方案:)至少快速测试表明“value instanceof$”工作正常。这就是我要找的东西。谢谢我将推广第二部分,因为它确实可以排除其他香草对象。
function(o) {
if(typeof o == 'object' && o.jquery) // it's jquery object.
}
var $myVar = $('#myId');
myFunc($myVar);
myFunc('myId');
function myFunc( value ){
// check if value is jQuery or string
switch( typeof value ) {
case 'object':
// is object
break;
case 'string':
// is string
break;
// etc etc.
}
}