2016-08-17 61 views
0

我看到在堆栈一些类似的帖子存在的,但我想在jQuery的是检查网址PARAM使用jQuery

$.urlParam('GETparameter')

为什么简单 if($.urlParam('GETparameter') === undefined) 不工作,要求特定的功能?为什么在其他问题上有复杂的答案?

谢谢你的答案,请你能有人编辑我的文章?我的英语水平很低。

回答

4

首先,$.urlParam不是固有的jQuery的功能,据我所知,意义如果你打算使用它,你需要定义它。

查看时,我发现了一个用户创建的同名函数;我会认为这是你指的是什么:

$.urlParam = function(name){ 
    var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href); 
    return results[1] || 0; 
} 

看起来这将返回0如果找不到参数,而不是undefined。如果这个功能其实是在你引用一个,你会想这样做,而不是:

if($.urlParam('GETparameter') === 0)

0

如果你想检查变量的类型,你需要使用类似:

if (typeof($.urlParam('GETparameter')) === 'undefined') { 
    .. 
} 

typeof documentation

+0

为什么这不仅仅是检查'=== undefined'更好?见http://www.2ality.com/2013/04/check-undefined.html – Barmar

+0

在我看来这是一个好习惯,因为如果你根本没有定义变量,你将会得到错误:“ReferenceError:x is没有定义的”。进一步调试的问题较少。看看[这篇文章](http://stackoverflow.com/questions/6006156/javascript-testing-variables-for-undefined-value-testing-whether-object-is-arr) – jacqbus

+0

好点,虽然它不适用到一个函数调用。 – Barmar