Javascript 更新url中的两个参数
如果传递的参数只有一个,则此代码有效 但是当我传递两个参数时,Javascript 更新url中的两个参数,javascript,jquery,Javascript,Jquery,如果传递的参数只有一个,则此代码有效 但是当我传递两个参数时,className参数在第二次更改时没有更新,它添加了新的className参数 这就是change函数的作用 $('#classRoom').change(function(){ var name = 'room_id'; var value = $('#majorRoom').val(); var className = 'room_type_id'; var classValue = $('#cl
className
参数在第二次更改时没有更新,它添加了新的className
参数
这就是change函数的作用
$('#classRoom').change(function(){
var name = 'room_id';
var value = $('#majorRoom').val();
var className = 'room_type_id';
var classValue = $('#classRoom').val();
addOrUpdateUrlParam(name, value, className, classValue)
})
这是更新参数的函数
function addOrUpdateUrlParam(name, value, className, classValue)
{
var href = window.location.href;
var regex = new RegExp("[&\\?]" + name + "=");
var regex2 = new RegExp("[&\\?]" + className + "=");
if(regex.test(href))
{
regex = new RegExp("([&\\?])" + name + "=\\d+");
regex2 = new RegExp("([&\\?])" + className + "=\\d+");
window.location.href = href.replace(regex, "$1" + name + "=" + value) + (regex2, "&" + className + "=" + classValue);
}
else
{
if(href.indexOf("?") > -1)
window.location.href = href + "&" + name + "=" + value + "&" + className + "=" + classValue;
else
window.location.href = href + "?" + name + "=" + value + "&" + className + "=" + classValue;
}
}
有人能帮忙吗
非常感谢
第一个变化:
'myweb.com/index.php?blabla=3&room_id=13&room_type_id=1835`
第二个变化:
'myweb.com/index.php?blabla=3&room_id=13&room_type_id=1835$1room_type_id=1832`
我认为调用RegExp()时缺少“g”修饰符
例如,而不是:
regex=newregexp(([&\\?])“+name+”=\\d+”代码>
应该是:
regex=newregexp(“([&\\?]”“+name+”=\\d+”,“g”)代码>
默认情况下,只影响第一次出现。使用“g”修饰符,您可以告诉RegExp全局应用于所有匹配项。为了避免各种regex代码的复杂性,您可以只向我们显示有效的最终url和无效的最终url。请查看我的上次更新。您希望在上次url中添加$符号吗。想必你想要的是一个&。不,我想要的只是&然后我建议你放弃正则表达式逻辑,简单地用字符串连接来构造你的URL。