2017-04-07 63 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我觉得哑巴,大声笑谢谢 –