【问题标题】:jquery get url param if existsjquery获取url参数(如果存在)
【发布时间】:2012-07-17 08:38:32
【问题描述】:

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

我尝试了以下方法,但如果 result 不存在,那么它会将我的脚本错误为未定义

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);

【问题讨论】:

    标签: jquery url get


    【解决方案1】:

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

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

    或者你也可以定义一个“默认值”之类的东西:

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

    【讨论】:

      【解决方案2】:

      如果 "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 = "........"; }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多