【问题标题】:jquery check if query string returned nulljquery检查查询字符串是否返回null
【发布时间】:2013-10-31 02:39:07
【问题描述】:

我需要检查一个空查询字符串的值,但我做错了:( 例如,当 url 是 index.php 时,我需要它来打开 #home 但如果它是 index.php?m=1&s=1 它打开 #page_1_1

    function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}
var m = getUrlVars()["m"];
var s = getUrlVars()["s"];

if((m!='')&&(s!='')){
    $('#page_'+m+'_'+s+'').show();
}
    else{ $('#home').show(); }

【问题讨论】:

  • 有什么问题?,警报(m),警报,显示什么值?
  • 我不知道函数在什么时候是一个空的查询字符串,我试过 '', '0', null 但它不起作用
  • 检查你在哪里使用 vars[hash[0]]=hash[1],因为 hash[0] 是 'm' 而 hash[1] 是 '1&s'

标签: jquery null query-string


【解决方案1】:

m & s 如果查询字符串为空或不包含这些值,则将未定义。您需要将支票更改为以下内容:

if(m && s) {
    $('#page_'+m+'_'+s+'').show();
} else {
    $('#home').show();
}

如果查询字符串中省略了ms,或者其中任何一个为空(例如http://www.somewhere.com?m=1&s=),则上面的if 语句将评估为false

【讨论】:

  • 请注意,如果 m 或 s 是 url 上的空字符串,则测试将失败,因为 if('') 的计算结果为 false。这可能不适用于您的情况,但值得一提。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-23
  • 1970-01-01
  • 2013-10-17
  • 2012-02-14
  • 2020-09-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多