基本上我有一个需要动态更改的网址来调用另一个功能,所以例如我有" index / buscasimples / finalidade / 1 / filtro / 1 /",当具体时按下按钮,我需要更换它所在的部分" filtro / 1 /"另一个。问题是这个数字" / 1 /"可能会有所不同,从1到3,所以我可能需要一个if来做这项工作。但我想知道是否有其他方法可以帮助我...
为了更清楚,代码就像这样
$('#filtro').change(function(e) {
e.preventDefault();
var filtro = $('#filtro option:selected').val();
var urlAtual = window.location.href;
var url = urlAtual.replace('/buscasimples/','/buscafiltrada/');
url += 'filtro/'+filtro+'/';
window.location = url;
})
此功能会更改网址并加上" filtro"这是必要的,并且第一次正常工作。但是当重复过程时,那就是2" filtro"在网址中,所以我想替换" filtro"以及它旁边的数字,但正如我所说,这个数字可以是1,2或3。有一些原生的jquery函数可以替换一个字符,无论它们是什么样的#34;替换。(' filtro / @ /')"或者其他的东西?很抱歉,我已经提交了该应用程序并且我正在尝试处理它哈哈谢谢!!
答案 0 :(得分:3)
我认为您需要indexOf()
..请尝试此代码并阅读代码中的注释
$('#filtro').change(function(e) {
e.preventDefault();
var filtro = $('#filtro option:selected').val();
var urlAtual = window.location.href;
var url = urlAtual.replace('/buscasimples/','/buscafiltrada/');
// <<<<<<<<< the new code start
if(url.indexOf('filtro/') > -1){ // if filtro/ found in the url'
urlSplit = url.split('filtro/'); // split url to get the url before 'filtro/'
url = urlsplit[0]+'filtro/'+filtro+'/'; // append new filtro to the first url string
}else{ // if url doesn't have filtro then append to url
url += 'filtro/'+filtro+'/';
}
// <<<<<<<<<<< end of new code
window.location = url;
})
答案 1 :(得分:1)
您可以检查当前网址是否已包含filtro/number
,是这样,我们replace
使用新 filtro编号,否则,我们会添加filtro/numero
到url
和redirect
。
您可以使用以下内容:
$('#filtro').change(function(e) {
var filtro = $('#filtro option:selected').val();
var urlAtual = window.location.href;
var url = urlAtual.replace('/buscasimples/','/buscafiltrada/');
if (/filtro\/\d+/i.test(url)) {
url = url.replace(/filtro\/\d+/i, "filtro/"+filtro);
}else{
url += 'filtro/'+filtro+'/';
}
window.location = url;
})