作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的网址看起来像这样
/myurl?code1=abcde&code2=fghijk&code3=lmnop&code4=qrstu&code5=vwxyz(最多 5 个代码变量)
我有一个 onclick 事件,我在其中获取代码变量,例如在上面的示例中它返回“fghijk”,但我不知道参数,例如 code2。所以我想做两件事:
1) 从我的 url 中查找并删除参数和值(如果我的 onclick 变量返回“fghijk”,在上面的示例中我的 url 变为/myurl?code1=abcde&code3=lmnop&code4=qrstu&code5 =vwxyz)
2) 在此之后我想重置参数编号,以便我的代码参数从 1 开始按顺序排列,因此在上面的数字 1 执行后我的 url 应该变为/myurl?code1=abcde&code2=lmnop&code3 =qrstu&code4=vwxyz
$('.myelement').on('click', function() {
var url = $('.myelement a').attr('href');
var codevar = $('.myelement span').text();
if(url +'contains('+codevar+')') {
// strip the param and variable from the url here
// now reset the url so code params are in number sequence
}
});
最佳答案
你可以这样做:
$('.myelement').on('click', function() {
var url = $('.myelement a').attr('href');
var codevar = $('.myelement span').text();
if(url.match(codevar)) {
var queryString = url.substring(url.indexOf("?") + 1);
var params = queryString.split("&");
var codeIndex = 1;
var newQuery = "";
for (var i = 0; i < params.length; i++) {
if (!params[i].match(codevar)) {
newQuery += params[i].replace(/code[0-9]/, "code" + codeIndex);
codeIndex++;
if (i < params.length - 1) {
newQuery += "&";
}
}
}
url = url.replace(queryString, newQuery).replace(/&$/, ""); //new query string with the sequential parameters
}
});
希望这对您有所帮助。
问候,
马塞洛
关于javascript - 如果存在查询字符串值,则删除参数并重置 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20501997/
我是一名优秀的程序员,十分优秀!