2017-04-08 61 views
-1

我想要替换我网站中的所有链接。然而,这个代码取代所有的链接,但我必须结束a "?lang=en"如何使用javascript更改网站中的所有链接,添加“?lang = el”

我该如何改变这一点?

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 = en'而不是' ?LANG = en'。 如何做到这一点? – EnexoOnoma

+0

@Pashiamas如果给定的href已经包含'?'符号,您可以使用测试函数进行检查。如果是这样 - 用'&'添加链接。 –

0

您可以使用.indexOf只需添加另一种方法来检查查询字符串存在或不@Kind用户的答案,因为我喜欢他用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>
方式

相关问题