2016-05-14 3 views
1

基本的に私は別の関数を呼び出すためにdinamically変更する必要があるので、例えば "index/buscasimples/finalidade/1/filtro/1"というURLがあります。/"、特定のボタンが押されたとき、" filtro/1/"の部分を別の部分に置き換える必要があります。問題は、この数字「/ 1 /」が1から3まで変わる可能性があるため、作業を行うにはifが必要になるでしょう。しかし、私はjqueryの文字列を変更する方法

が明確であるために...私を助けることができる別の方法があるかどうかを知りたい、コードがこの関数は、URLを変更し、この

$('#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」に置くことはじめて必要となり、正常に動作します。しかし、プロセスが繰り返されると、URLに2 "filtro"があるので、 "filtro"とそれに続く数字を置き換えたいが、この数字は1,2,3のいずれかになる可能性がある前記。ある文字を置き換えることができるネイティブjquery関数があります。「置き換え( 'filtro/@ /')」なのでしょうか?申し訳ありませんが、長い質問のために、私はそのアプリケーションをすでに作成しており、私はそれに対処しようとしています。私はあなたがindexOf()が必要だと思う

+0

:あなたのようなものを使用することができます

? –

+0

'「 –

答えて

3

...このコードを試してみて、コード内のコメントを読んでください

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

天才的な仕事だった男!私は本当に他の人を助けるためにこのような時間を過ごす人々を見つけることがうれしいです、あなたは本当に私の一日を良くしました!すべて最高です、ありがとう! –

+0

@op_exchanger私は本当にあなたの一日を良くすることを嬉しく思っています..そして、あなたの日々がどんどん良くなってくれることを願っています。 –

1

現在のURLがすでにfiltro/numberが含まれているかどうかをチェックすることができ、そうです、私たちは新しいとそれをreplaceフィルター番号、それ以外の場合は、とredirectfiltro/numeroを追加します。オプションのhtmlコードだ

$('#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; 
}) 
関連する問題