如果传递的参数只有一个,则此代码正常工作。
但是当我传递两个参数时,className
参数在第二次更改时没有更新,它添加了新的className
参数。
这是变更功能的用武之地。
$('#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)
})
这是更新params的功能。
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`
答案 0 :(得分:0)
我认为" g"调用RegExp()时缺少修饰符 例如,而不是:
.container1{ width:1100px; height:100%; clear:both; margin:auto;}
.Review{ border:1px solid #000; list-style-type:none;
padding:20px 30px 20px 50px;}
.Comments{ list-style-type:none; text-align:justify;
font-family:"Times New Roman", Times, serif;
font-size:18px; padding-top:10px;}
.Review1{ border:1px solid #000; list-style-type:none;
padding:20px 30px 20px 50px;}
应该是:
regex = new RegExp("([&\\?])" + name + "=\\d+");
默认情况下,只会影响第一次发生。随着" g"你告诉RegExp全局应用于所有匹配的修饰符。