1

我需要检查一个空查询字符串的值,但我做错了什么:(例如,当 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(); }
4

1 回答 1

1

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

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

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

于 2013-10-31T02:47:50.090 回答