2017-04-07 19 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は、検索式が文字列の場合はtrue、 'RegExp'の場合は' g 'フラグが有効な場合はすべてを置き換えることができます。 – peteb

+0

ハハダン私はダム感じ、笑あなたに感謝 –

関連する問題