首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >添加href URL字符串

添加href URL字符串
EN

Stack Overflow用户
提问于 2019-04-15 14:08:15
回答 3查看 146关注 0票数 2

我需要使用Java Script对页面上的所有超链接进行更改。目前,标签是以这种方式布局的

代码语言:javascript
复制
<a href="/Level1/Level2/Level3/bla bla bla.aspx"

我真正苦苦挣扎的变化(作为这个领域的绝对新手)是我如何进行以下更改并添加到另一个级别?具有相同结构的子网站;

代码语言:javascript
复制
<a href="/Level1/Level2/Level3/+Level4/bla bla bla.aspx" 

添加“4级”之前和之后的URL部分将保持不变。我需要将此更改应用于页面上的所有超链接,这些超链接不存在级别4部分。

对这个令人震惊的请求深表歉意。第一次发帖。

EN

回答 3

Stack Overflow用户

发布于 2019-04-15 14:16:14

获取所有的href -如果href没有所需的级别4,则使用简单的.replace()和添加的级别添加级别-然后作为href属性应用。

请注意,链接1和3没有级别4,因此将受到if条件的影响,而链接2已经具有级别4,因此不会受到影响。

代码语言:javascript
复制
let links = document.querySelectorAll('a');

links.forEach(function(link) {
 let originalHref = link.getAttribute('href');
 if(originalHref.indexOf('+Level4') == -1) {
   link.setAttribute('href', originalHref.replace('Level3/','Level3/+Level4/'));
 }
})
代码语言:javascript
复制
a {
 display: block;
 margin-bottom: 8px;
}
代码语言:javascript
复制
<a href="/Level1/Level2/Level3/option1.aspx">Option 1</a>
<a href="/Level1/Level2/Level3/+Level4/option2.aspx">Option 2</a>
<a href="/Level1/Level2/Level3/option3.aspx">Option 3</a>

票数 1
EN

Stack Overflow用户

发布于 2019-04-15 14:28:04

试一试

代码语言:javascript
复制
document.querySelectorAll('a').forEach(a=> 
 a.href= a.href.replace(/(\/Level1\/Level2\/Level3)(?!\/Laravel4)/,"$1/+Laravel4"));

regexp解释

  • (\/Level1\/Level2\/Level3)查找带有前缀的链接(组$1)
  • (?!\/Laravel4)但不包含Laravel4
  • "$1/+Laravel4"将匹配的字符串(组$1)替换为带有后缀

的组$1

代码语言:javascript
复制
document.querySelectorAll('a').forEach(a=> 
 a.href= a.href.replace(/(\/Level1\/Level2\/Level3)(?!\/Laravel4)/,"$1/+Laravel4"));
  
  
// INFO
document.querySelectorAll('a').forEach(a=>console.log(a.href));
代码语言:javascript
复制
<a href="/Level1/Level2/Level3/bla bla bla.aspx">link 1</a>
<a href="/Level1/Level2/Level3/Laravel4/terefere.aspx">link 2</a>
<a href="/Level1/Level2/Level3/zzzz.aspx">link 3</a>

票数 0
EN

Stack Overflow用户

发布于 2019-04-15 15:14:15

location.href是为您提供的tu url:

代码语言:javascript
复制
var currentUrl= location.href;
currentUrl = currentUrl.replace("level1","level1/level2")
location.href = currentUrl;

我不太明白你的意思,但这需要解决你的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55683371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档