基本上,我有一个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;
})

09-13 09:10