如果是第一次加载网站,则当用户选择医院的位置下拉列表时,应将hos = somelocation作为查询字符串传递到URL。
http://mysite/events/Pages/default.aspx?hos=Munster

如果该网址已经包含一个以及其他查询字符串,例如
http://mysite/events/Pages/default.aspx?kwd=cancer&hos=Munster

那么我需要检查&hos是否已经在window.location.search ..中,如果已经存在,则将其具有的任何值替换为最近选择的一个,而无需像这样追加:
http://mysite/events/Pages/default.aspx?kwd=cancer&hos=Munster&hos=Carmel->这不是我想要的。一旦用户从位置下拉列表中选择Carmel,我希望它成为http://mysite/events/Pages/default.aspx?kwd=cancer&hos=Carmel。有人请帮忙!

$(".LocationDropDown").change(function(e){
    var querystring=window.location.search;
    var currentURL=$(location).attr('href');
    if(querystring=='') {
        window.location.href= ( $(this).val() == "All Hospitals" ) ? 'http://mysitee/events/Pages/default.aspx':'http://mysite/events/Pages/default.aspx?hos='+$(this).val();
        }
        else
          {
            window.location.href = ( $(this).val() == "All Hospitals" ) ? 'http://mysitee/events/Pages/default.aspx':currentURL+'&hos'+$(this).val();
   }
});

最佳答案

尝试BBQ plugin for jQuery。如果您要使用多个查询字符串值(例如您的示例),则使用起来确实非常简单,并且是最好的插件。

要获取变量,可以使用:

$.bbq.getState( "kwd" );
$.bbq.getState( "hos" );


并设置状态:

$.bbq.pushState({ hos: Carmel }); //pushState has an optional 2nd param
//for whether or not to delete all the params not in the push function or to keep them.


并执行URL更改功能:

$(window).bind( "hashchange", function(e) {
    // In jQuery 1.4, use e.getState( "url" );
    var url = $.bbq.getState( "url" );
});

08-07 11:03