str.replace没有按预期运行

时间:2017-04-07 16:46:18

标签: javascript jquery

我目前正在编写一个函数来检查url param是否在url中。如果它在那里我将其删除,如果它还没有,我将添加它。基本上在按钮点击时切换参数。这是我到目前为止所拥有的。

     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中时,if语句确实有效并输出“removed:”值

但是,网址中的值未被删除。我觉得我错过了什么。

1 个答案:

答案 0 :(得分:4)

调用"abc".replace("b","D")不会改变" abc"但返回新字符串" aDc"所以你需要将结果存储在collectionUrl

所以称之为collectionUrl = collectionUrl.replace(value1,"");