替换并向 URL 添加 3 个不同的参数
replacing and adding 3 different params to the url
我有一个脚本,当我单击分配的按钮时,它会向 url 添加一个参数 - 接下来单击将其替换为新的参数 - 这很好。
但是 - 现在我有三个按钮 - 我希望每个按钮为 url 分配一个参数 - 并替换任何其他按钮添加的任何参数。它还需要放在已经存在的参数后面。
所以:
(button1) click3: /m4n?ecom-query=imac&seid=etailer-products&viewMode=3?param=grid
(button2) click4: /m4n?ecom-query=imac&seid=etailer-products&viewMode=3?param=list
(button3) click5: /m4n?ecom-query=imac&seid=etailer-products&viewMode=3?param=smalllist
参数之前的 url 是动态的,可能看起来不同。
$('.click2').on('click', function() {
console.log("Clicked");
var url = window.location.pathname;
var url = window.location.href;
if (url.indexOf('?param=list') > -1) {
url = url.replace("?param=list", "") + '?param=grid'
} else {
url = url.replace("?param=grid", "") + '?param=list'
}
window.location.href = url;
});
我该怎么做,我试图修改我现有的脚本,但没有运气。
我认为您的方法存在一个小错误:url 中的所有参数都应与 &所以现在你的网址应该是这样的
/m4n?ecom-query=imac&seid=etailer-products&viewMode=3¶m=grid
现在,如果要替换旧 PRAM,则还需要删除旧值。为此,您可以使用正则表达式,如以下代码所示
url = url.replace(/'¶m=.*/,'') + '¶m=list'
所以完整的代码将是:
$('.click2').on('click', function() {
console.log("click2 Clicked");
var url = window.location.href;
url = url.replace(/'¶m=.*/,'') + '¶m=list';
window.location.href = url;
});
希望对你有帮助
相关文章:
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 传递包含'%的参数'在URL中
- 如何在router.get()方法中传递url作为参数
- javascript中url中的Regex参数
- 如何在reactrouterv2.+中从URL获取参数
- 使用express.具有多个url和可选参数的Router()
- 如何在所有ajax调用中向URL添加参数
- 通过Javascript将HTML中的电话号码与URL参数进行交换
- 如何使用Javascript从URL参数中自动填充文本字段
- XMLHttpRequest.open()AJAX中的参数url
- 如何将Google Analytics配置为将URL参数作为单个页面进行跟踪
- 使用应用程序状态js和视图在angular js url上传递两个参数
- 在url参数javascript中存储键值对列表
- backbone.js-映射标准url参数-使用多个参数
- 模版启动错误-类型错误(“参数”url'必须是字符串,而不是“+类型的url”)
- UI 路由器参数 URL 不起作用,只是重定向到 /
- 在Select2中传递参数url
- 使用jQuery/Javascript(querystring)获取查询字符串参数url值
- Javascript -重定向参数URL只有一次
- 替换url参数-url被破坏