基本上,我有一个URL,需要对其进行动态更改以调用其他函数,例如,我有“ 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;
})
此函数更改url并放在所需的“ filtro”上,并且第一次可以正常工作。但是,当重复该过程时,URL中将有2个“ filtro”,因此我想替换“ filtro”及其旁边的数字,但是这个数字可以是1、2或3说过。有一些本机jquery函数可以替换一个字符,无论它们是“ replace。('filtro / @ /')”之类的东西吗?抱歉,很长的问题,我已经准备好了该应用程序,正在尝试处理它哈哈谢谢!
最佳答案
我认为您需要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;
})