2017-11-30 13 views
0

私はデータのドロップダウンを持っています。以降で動作するように、URLに選ばoptionとパイプのvalueで選択し、私はパイプ:jqueryは更新後のURLの変数セットを更新します

var currentURL = document.location; 
location.href = currentURL + "/" + this.simID; 

これは、URLの最後にVARを追加することによって、素晴らしい作品。私の問題は、ユーザーがドロップダウンリストから別のoptionを選択すると、明らかに前のurlの最後に別のvarが追加されることです。以前のthis.simIDを削除しようとするか、各リフレッシュ後に変数を交換するのに苦労しています。どんな助けでも大歓迎です。

+0

は、あなたが残しておきたい場所にあり、他のパス名です。たとえば:currentUrl = example.comまたはexample.com/pathname1/pathname2ですか? –

+0

example.com/something/other/also/$simID – HollerTrain

+0

最後の2つの質問ですが、他のパス名は変わりますか?また、$ simIDは常に最後のパス名になりますか? –

答えて

0

は、私はそうのようなLOCATION.HREFを構築します:simIDは常にパスの最後の項目になります場合にのみ動作します

location.href = createHref(this.simID) 

function createHref(option){ 
    var path = location.pathname.split('/'), 
     lastPath = path[path.length-1],  // get the last item on the path 
     options = [option1,option2,option3]; // store an array of possible options 

    if (options.includes(lastPath)) { 
    path.pop    // if lastPath is one of the options, remove it 
    } 
    path.push(option)  // then add the selected option 
    return location.host + "/" + path.join('/') 
} 

。 (example.com/here/there/simID) はなく、それはパス (example.com/here/simID)の途中になる場合

また、あなたはすべて取り込むことができるようにする必要があります可能なオプション。

+0

私はより適切だと思う答えを提供しました – HollerTrain

0

これはエレガントな解決策のように思える、と歴史の中でURLを保存するためにhistory.pushStateを使用していますが、手動でページを更新しない

//update page url to include sim 
var currentURL = location.href.match(/([^\/]*)\/*$/)[1], 
    replaceURL = this.simID, //whatever var you are trying to replace in URL 
    finalURL = currentURL.replace(currentURL, replaceURL); 

history.pushState({id: 'LOREM IPSUM NAME'}, '', finalURL); 
関連する問題