我想要替换我网站中的所有链接。然而,这个代码取代所有的链接,但我必须加结束a "?lang=en"
如何使用javascript更改网站中的所有链接,添加“?lang = el”
我该如何改变这一点?
var links = document.getElementsByTagName("a");
for(var i = 0; i < links.length; i++)
{
links[i].href = "newURLHERE";
}
我想要替换我网站中的所有链接。然而,这个代码取代所有的链接,但我必须加结束a "?lang=en"
如何使用javascript更改网站中的所有链接,添加“?lang = el”
我该如何改变这一点?
var links = document.getElementsByTagName("a");
for(var i = 0; i < links.length; i++)
{
links[i].href = "newURLHERE";
}
使用=
代替整个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>
谢谢!有用。我有一个场景,我必须通过...我的一些原始链接的形式是'page.php?var = a&var = b',因此在这些情况下添加的只能是'&lang = en'而不是' ?LANG = en'。 如何做到这一点? – EnexoOnoma
@Pashiamas如果给定的href已经包含'?'符号,您可以使用测试函数进行检查。如果是这样 - 用'&'添加链接。 –
您可以使用.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>
好像你正在取代所有'href' instea d追加文字尝试像这样'links [i] .href + =“newURLHERE”;'或'links [i] .href = links [i] .href +“newURLHERE”;' – Curiousdev