对于我的网站jquery和jquery.ui加载我尝试了以下实验。
如果在Chrome控制台中输入...
jQuery.ui
>Object {version: "1.9.1", keyCode: Object, ie: false, ie6: false, plugin: Object…}
但是,如果我要求它的类型我得到..
typeof this["jQuery.ui"]
>"undefined"
有人可以解释为什么会这样吗? 我将如何判断jQuery.ui是否存在?....如果" jQuery.ui" name包含在字符串变量中,我如何使用该变量来检查existance ......例如。
var myvar = "jQuery.ui";
typeof this[myvar];
答案 0 :(得分:2)
当您键入jQuery.ui
时,您正在访问全局变量jQuery
,然后向该对象询问名为ui
的属性。
this["jQuery.ui"]
向全局对象询问名为"jQuery.ui"
的属性。这是完全不同的事情。
我将如何判断jQuery.ui是否存在?
最简单的是:
if (jQuery && jQuery.ui) {
// jQuery.ui exists
}
如果" jQuery.ui" name包含在字符串变量中,我将如何使用该变量来检查存在
不要这样做。不要将变量名称存储为字符串。这是个坏主意。特别是如果你想检查全局变量。
答案 1 :(得分:1)
如果" jQuery.ui" name包含在字符串变量中,我将如何使用该变量来检查存在
如果您确实想要完成此操作,请尝试以下代码:
function existsOn(prop, obj){
var parts = prop.split('.');
for(var i=0; i < parts.length; i++){
obj = obj[parts[i]];
if(!obj){
return false;
}
}
if(obj){
return true;
}
return false;
}
var str = "jQuery.ui";
alert("Exists: " + existsOn(str, window));
&#13;