Javascript url.location&;替换为?

Javascript url.location&;替换为?,javascript,jquery,Javascript,Jquery,在我的html页面中有一个语言选择单选按钮,在选择语言时,我会调用相同的url,并附加“?lang=”。这是我通过js做的,当url被提交时&被替换为?。下面是我的js代码 function removeBookmarkFromUrl(url) { var arr = url.split("#"); return arr[0]; } $(document).ready(function () { $('input:radio[name=lang]').change(fu

在我的html页面中有一个语言选择单选按钮,在选择语言时,我会调用相同的url,并附加“?lang=”。这是我通过js做的,当url被提交时&被替换为?。下面是我的js代码

function removeBookmarkFromUrl(url) {
    var arr = url.split("#");
    return arr[0];
}

$(document).ready(function () {
    $('input:radio[name=lang]').change(function() {
        var url = window.location.href;
        var selectedLang = $(this).attr('id');
        url = removeBookmarkFromUrl(url);       
        if (url.indexOf('?lang') >= 0 || url.indexOf('&lang') >= 0) {
            var pos = (url.indexOf('?lang') >=0 ) ? url.indexOf('?lang') : url.indexOf('&lang');
            var currentLang = url.slice(pos + 6, pos + 8);
            if (url.charAt(pos) == '?') {
                url = url.replace('?lang=' + currentLang, '?lang=' + selectedLang);
                window.location = url;
            } else if (url.charAt(pos) == '&') {
                url = url.replace('&lang=' + currentLang, '&lang=' + selectedLang);
                window.location = url;
            }
        } else {
            if (url.indexOf('?') >= 0) {
                window.location = url + '&lang=' + selectedLang;
            } else {
                window.location = url + '?lang=' + selectedLang;
            }
        }
    });
});

现在,当我选择语言时,浏览器中的url是。我调试了代码,发现url为,但在提交时会发生更改

您的代码似乎很好。你应该考虑使用函数,它们使调试变得容易很多。
函数removeBookmarkFromUrl(url){
var arr=url.split(“#”);
返回arr[0];
}
函数getLangl(url,lang){
url=从url移除书签(url);
if(url.indexOf('?lang')>=0 | | url.indexOf('&lang')>=0){
var pos=(url.indexOf('lang')>=0)?url.indexOf('lang'):url.indexOf('lang');
var currentLang=url.slice(位置+6,位置+8);
如果(url.charAt(pos)='?'){
url=url.replace(“?lang=”+currentLang,“?lang=”+lang);
返回url;
}
else if(url.charAt(pos)='&'){
url=url.replace('&lang='+currentLang',&lang='+lang);
返回url;
}
}否则{
如果(url.indexOf(“?”)>=0){
返回url+'&lang='+lang;
}否则{
返回url+'?lang='+lang;
}
}
}
var-url;
url=”http://localhost:8080/test/report.htm";
log(url,“\n->”,getLangl(url,'de'));
url=”http://localhost:8080/test/report.htm?lang=en";
log(url,“\n->”,getLangl(url,'de'));
url=”http://localhost:8080/test/report.htm?count=40&name=jerry";
log(url,“\n->”,getLangl(url,'de'));
url=”http://localhost:8080/test/report.htm?count=40&name=jerry&lang=en";
log(url,“\n->”,getLangl(url,'de'))