2017-04-07 64 views
0

我目前正在寫一個函數來檢查url參數是否在url中。如果它在那裏,我正在刪除它,如果它不在那裏,我會添加它。基本上在按鈕點擊時切換參數。這是我到目前爲止。str.replace沒有按預期運行

 var value1 = $(this).attr("value"); 
    var collectionUrl = window.location.href; 
     if (collectionUrl.includes($(this).attr("value"))) { 
      console.log("removing: " + $(this).attr("value")); 
      collectionUrl.replace(value1,""); 
     } 
     else { 
      console.log("adding: " + $(this).attr("value")); 
      collectionUrl = collectionUrl + $(this).attr("value")+"/"; 
     } 
    ajaxLoadPage(collectionUrl); 

當值不存在時,將該值添加到預期的url中。當該值已經存在於url中時,if語句可以正常工作,並輸出「removed:」值

但是,url中的值未被刪除。我覺得我錯過了一些東西。

回答

4

調用"abc".replace("b","D")不會更改「abc」,但會返回新字符串「aDc」,因此您需要將結果存儲在collectionUrl中。

所以這樣稱呼它collectionUrl = collectionUrl.replace(value1,"");

+1

...和'.replace'僅替換搜索到的子字符串的第一次出現。 –

+1

@ibrahimmahrir那是真的如果搜索表達式是一個字符串,如果它的'RegExp'它可以代替所有如果''g''標誌被啓用。 – peteb

+0

HAHAA dang我覺得啞巴,大聲笑謝謝 –