2013-10-31 122 views
1

我需要检查空querystring的值,但我做错了什么:( 当url是index.php例如我需要它打开#home,但如果它是的index.php?M = 1 & S = 1打开它#page_1_1jquery检查查询字符串是否返回null

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(); } 
+0

问题是什么?警报(m),警报(s),显示什么值? –

+0

我不知道什么函数得到什么时候是一个空的查询字符串,我试过'','0',但它不工作 – BrunoWB

+0

似乎很好http://jsfiddle.net/arunpjohny/nmddf/1/ –

回答

1

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

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

如果在查询字符串中省略了ms,或者它们中的任何一个都为空,则上面的if语句将评估为falsehttp://www.somewhere.com?m=1&s=

+0

谢谢,perfect = D! – BrunoWB

+0

请注意,如果m或s是url上的空字符串,则测试将失败,因为如果('')计算结果为false。这可能不适用于您的案例,但值得一提。 – wdosanjos