【问题标题】:Dynamically change href and link to a url fragment动态更改 href 并链接到 url 片段
【发布时间】:2017-01-05 17:21:17
【问题描述】:

希望有人可以提供帮助。 我正在尝试动态更改页面上的href,然后将用户指向一个包含以下片段的url:

$(document).ready(function(){
    if (document.location.pathname.indexOf('cab2') > -1){
        document.getElementsByClassName('resourceLink').setAttribute('href','http://www.myserver.net/cab2/#linkResources');
        } else {
            document.getElementByClassName('resourceLink').setAttribute('href','http://www.myserver.net/cab/#linkResources');
        };
});

在 HTML 中,我使用了几个这样的链接:

<a class="resourceLink" href="" title="Link to Resources section" target="_blank">Resources</a>

我希望脚本会检查访问者用来到达网站的网址,要么

虽然链接打开的是基本页面(www.myserver.net/cab 或 cab2)而不是 #fragment 页面。

我做错了什么? 感谢您的关注。

【问题讨论】:

标签: javascript html href document-ready


【解决方案1】:

.getElementsByClassName() 返回 HTMLCollection,而不是单个元素。您可以使用.each() 迭代所有.resourceLink 元素,.attr() 设置href 属性值

$(document).ready(function(){
   var link =  document.location.pathname.indexOf('cab2') > -1 ? "cab2" : "cab";
    $('.resourceLink')
    .each(function() {
       $(this)
       .attr('href','http://www.myserver.net/'+ link +'#linkResources')
    });
});

【讨论】:

  • 感谢@guest271314,虽然仍然无法正常工作,但您的评论让我开始了。请注意,您的 var 链接语句中有一个小错字,一个额外的右括号。
  • @RogerW “仍然无法正常工作” 目前的问题是什么?最后一个正斜杠/ 有必要吗?
  • 是的,它仍在加载基本页面 - www.myserver.net/cab/(或 cab2),而不是附加的片段,即 www.myserver.net/cab/#linkResources。感谢您的帮助!
  • 感谢您的更新@guest271314,但它仍然无法正常工作。这可能与以下事实有关实际上是在已经加载到 index.html 中的 about.html 上。
  • @RogerW javascript 在链接中没有出现答案?您应该能够在 plnkr 上重现问题
猜你喜欢
  • 1970-01-01
  • 2016-11-10
  • 2019-12-11
  • 1970-01-01
  • 1970-01-01
  • 2021-08-15
  • 1970-01-01
  • 2022-08-03
  • 1970-01-01
相关资源
最近更新 更多