【问题标题】:Javascript with if statement not changing href attribute带有if语句的Javascript不更改href属性
【发布时间】:2014-10-12 14:10:12
【问题描述】:

我在if语句之后设置了一个超链接,其href属性需要通过javascript更改,但它没有。

    <script>
    function addhttp(url) {

        var url = "newlink";

       if (!/^(f|ht)tps?:\/\//i.test(url)) {
          url = "http://" + url;
       }
       return url;
       document.getElementById('wl').href= url;
    };
    </script>

<li>
<a id="wl" href="oldlink">LINK</a>
</li>

Also a JSFiddle

我错过了什么?

【问题讨论】:

  • 你在哪里调用这个 addhttp() 函数?
  • 你在改变href之前做return

标签: javascript html variables hyperlink href


【解决方案1】:

两个细节有问题。 首先,正如@Bjorn 所注意到的,该函数没有被调用,这是通过将function addhttp(url) { ... }; 替换为$(function () { ... }); 来修复的,
其次,正如@Mritunjay 指出的那样,href 在返回完成后会更改,因此只需将它们的顺序反转为

document.getElementById('wl').href= url;
return url;

制作工作脚本

$(function () {
    var url = "new link";

   if (!/^(f|ht)tps?:\/\//i.test(url)) {
      url = "http://" + url;
   }
   document.getElementById('wl').href= url;
   return url;
});

如果这个答案对你有帮助,请给他们的 cmets 投票。

【讨论】:

    猜你喜欢
    • 2013-06-01
    • 1970-01-01
    • 2013-06-17
    • 2020-05-01
    • 2012-09-05
    • 1970-01-01
    • 1970-01-01
    • 2015-12-24
    • 2019-01-18
    相关资源
    最近更新 更多