使用jQuery隐藏基于URL的div

时间:2014-01-03 15:09:37

标签: jquery

在这种情况下,当URL显示某个参数时,我试图隐藏div:?rpid

 $(document).ready(function () {
            var option = 'rpid';
            var url = window.location.href;
            option = url.match(/option=(.*)/)[1];
            showDiv(option);
        });
        function showDiv(option) {
            $('.radio_element input_container').hide();
            $('#' + option).show();
        }

我在Firebug控制台中收到以下错误:

TypeError: url.match(...) is null   
option = url.match(/option=(.*)/)[1];

不太清楚这里发生了什么,感谢任何帮助,谢谢。

2 个答案:

答案 0 :(得分:0)

您的网址与/ option = / regexp导致“选项”不匹配,这意味着不是选项变量的值,而是“选项”字本身。

所以你应该使用try url.match(new RegExp(option + "="))或url.match(/ rpid = /)。

我还建议将代码更改为

var rpid = url.match(...);
if (rpid)
    showDiw(rpid[1]);

答案 1 :(得分:0)

尝试此操作以检查rpid是否在查询字符串中:

var vars = [], hash;
var q = document.URL.split('?')[1];
if(q != undefined){
    q = q.split('&');
    for(var i = 0; i < q.length; i++){
        hash = q[i].split('=');
        vars.push(hash[1]);
        vars[hash[0]] = hash[1];
    }
}

$(document).ready(function () {
    if (vars['rpid']) {
        showDiv(vars['rpid']);
    }
}

function showDiv(option) {
    $('.radio_element input_container').hide();
    $('#' + option).show();
}