2016-05-14 14 views
1

Grundsätzlich habe ich eine URL, die geändert werden muss, um andere Funktionen aufzurufen, so habe ich zum Beispiel "index/buscasimples/finalidade/1/filtro/1/", und wenn eine bestimmte Taste gedrückt wird, muss ich den Teil, wo es" filtro/1/"ist, durch einen anderen ersetzen. Das Problem ist, dass diese Zahl "/ 1 /" variieren kann, von 1 bis 3, also werde ich wahrscheinlich ein if brauchen, um die Arbeit zu machen. Aber ich möchte wissen, ob es eine andere Möglichkeit ist, die mir helfen könnte ...So ersetzen Sie mit jquery ein Zeichen, das in einer Zeichenfolge variieren kann

Um klarer, ist der Code wie dieser

$('#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; 
}) 

Diese Funktion die URL ändert und auf den „filtro“, dass ist notwendig und funktioniert zum ersten Mal gut. Aber dann, wenn der Prozess wiederholt wird, gibt es 2 "filtro" in der URL, also möchte ich das "filtro" und die Zahl, die daneben ist, ersetzen, aber diese Zahl kann 1, 2 oder 3 sein, wie ich sagte. Es gibt eine native jquery-Funktion, die ein Zeichen ersetzen kann, egal wie "Ersetzen" ('filtro/@ /') "oder etwas? Sorry für lange Frage, ich habe diese Anwendung bereits gemacht und ich versuche, damit fertig zu werden haha ​​Danke !!

+0

Wo die Option HTML-Code ist:

können Sie so etwas wie verwenden? –

+0

' ' –

Antwort

3

Ich glaube, Sie brauchen indexOf() .. diesen Code versuchen, die Kommentare im Code lesen Sie bitte

$('#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; 
}) 
+0

Mann das war geniale Arbeit! Ich bin wirklich froh, Leute zu finden, die Zeit so verbringen, um anderen zu helfen, du hast meinen Tag wirklich besser gemacht! Alles Gute, Dankeschön! –

+0

@op_exchanger ich bin wirklich froh, deinen tag besser zu machen .. und hoffe, dass all deine tage besser und besser werden .. bleib großartig und genieße das programmieren ... viel glück :) –

1

Sie überprüfen können, ob die aktuelle URL bereits filtro/number enthält, ist so, wir replace es mit dem neu Filtro-Nummer, ansonsten fügen wir filtro/numero zu den url und redirect hinzu.

$('#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; 
}) 
Verwandte Themen