2017-04-08 9 views
-1

私のウェブサイトのすべてのリンクを交換しようとしています。しかし、このコードはすべてのリンクを置き換えますが、私はを末尾にを追加する必要があります"?lang=en""?lang = el"を追加してjavascriptを使用してウェブサイトのすべてのリンクを変更するには

どうすれば変更できますか? =を使用して

var links = document.getElementsByTagName("a"); 
for(var i = 0; i < links.length; i++) 
    { 
     links[i].href = "newURLHERE"; 
    } 
+0

あなたはすべての 'href' instea dこのようにしてみてください 'links [i] .href + =" newURLHERE ";' 'または' links [i] .href = links [i] .href + "newURLHERE"; ' – Curiousdev

答えて

0

は全体href属性を置き換えます。

var links = document.getElementsByTagName("a"); 
 
    Array.from(links).forEach(function(v) { 
 
     /\?/.test(v.href) ? v.href += "&lang=en" : v.href += "?lang=en"; 
 
    });
<a href='something3'>click1</a> 
 
<a href='something2'>click2</a> 
 
<a href='page.php?var=a&var=b'>click3</a>

+0

ありがとうございます!できます。私は渡す必要があるシナリオを持っています...私の元のリンクのいくつかは 'page.php?var = a&var = b'の形になっていますので、これらの場合に追加されるのは、'&lang = ?lang = en'。 これを行う方法は? – EnexoOnoma

+0

@Pasamas与えられたhrefに '? '記号がすでに含まれていれば、テスト関数でチェックできます。もしそうなら、その代わりに '&'でリンクを追加してください。 –

0

あなただけ.indexOfを使用することができますクエリ文字列をチェックするために別のアプローチを追加しました私は、彼がArrow functions

var links = document.getElementsByTagName("a"); 
 
    Array.from(links).forEach(v => 
 
    (v.href.indexOf("?") > -1) ? v.href += "&var=c" : v.href += "?var=d");
<a href='something3?var=a'>click1</a> 
 
<a href='something2'>click2</a> 
 
<a href='something1'>click3</a>
を使用しての道を好きなように@Kindユーザーの答えではありませんが存在しますか、

関連する問題