如果存在,则jquery获取url param

时间:2012-07-17 08:38:32

标签: jquery url get

我试图构建一个脚本来检查名为 result 的url变量是否存在,如果存在,则会检查该值是否等于成功。

我尝试了以下操作,但如果结果不存在则会将我的脚本错误定义为未定义

function getUrlVars() {
    var vars = {};
    var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
        vars[key] = value;
    });
    return vars;
}
var first = getUrlVars()["result"];
alert(first);

2 个答案:

答案 0 :(得分:3)

为什么不简单地检查它是否未定义?

if (first !== undefined)
     alert(first);
else alert('ooops');

或者您可能还可以定义类似“默认值”的内容:

var first = getUrlVars().result || '';

答案 1 :(得分:0)

如果查询字符串中没有“result”,则不会将其放入vars对象中。

所以如果你想保留:

'first = getUrlVars()["result"]'

事情发生了,你将不得不接受如果“结果”根本不存在,那么它将显示为未定义(当你要求的数组索引不是你得到的结果持有任何东西,或者尚未设置的对象属性。)

如果你已经死定了,请尝试:

var first = getUrlVars()["result"] || "not-success";

||将允许您在

的情况下返回您想要的任何值作为第一个值
vars.result === undefined;


first = result || false;
first = result || {};
first = result || fire_this_function("no-result");
// first now equals the return value of the function if result === undefined

这些都与说法相同:

if (result === undefined) { first = "........"; }