如何通过JavaScript更改按钮上<a>标签的href


126

如何通过单击按钮时的Javascript 更改标签的href属性值<a/>

<script type="text/javascript">
  function f1()
  {
    document.getElementById("abc").href="xyz.php"; 
  }
</script>

<a href="" id="abc">jhg</a>
<a href="" id="" onclick="f1()">jhhghj</a>

可访问性方法要求不要以这种方式使用链接。此处:xkr.us/js/links
免费咨询,2010年

Answers:


176

如果没有href,则单击将重新加载当前页面,因此您需要执行以下操作:

<a href="#" onclick="f1()">jhhghj</a>

或防止这样的滚动:

<a href="#" onclick="f1(); return false;">jhhghj</a>

return false在您的f1函数中:

<a href="#" onclick="return f1();">jhhghj</a>

....或者不打扰的方式:

<a href="#" id="abc">jhg</a>
<a href="#" id="myLink">jhhghj</a>

<script type="text/javascript">
  document.getElementById("myLink").onclick = function() {
    document.getElementById("abc").href="xyz.php"; 
    return false;
  };
</script>

34

尼克·卡弗(Nick Carver)确实在这里做了什么,但是我认为最好使用DOM setAttribute方法。

<script type="text/javascript">
   document.getElementById("myLink").onclick = function() {
   var link = document.getElementById("abc");
   link.setAttribute("href", "xyz.php");
   return false;
   }
</script>

这是额外的一行代码,但是发现它在结构上更好。


8
IMO在这里没有必要,这永远是DOM属性,.href可以在所有浏览器中使用...例如,您会使用.getAttribute("id")而不是.id?:)
Nick Craver

3
没错,它没有做任何特殊或不同的事情,只是结构上的。我喜欢以这种方式拥有我所有的DOM函数,以便以后进行调试/查看:对我来说,更容易看到该函数在使用这些方法的作用。显然,您的答案对金钱是正确的:)
jakobhans

7

删除href属性:

<a id="" onclick="f1()">jhhghj</a>

如果链接样式很重要,则:

<a href="javascript:void(f1())">jhhghj</a>

1
<a>没有href属性的标签?什么?为什么?
Shikiryu 2010年

1
省略href将会改变其样式和行为。然后,它充当锚,而不是链接。
Cobra_Fast 2010年

1
感谢您的答复,你们真的可以帮助我。
Chauhan,2010年

1
no href使其成为锚点,单击即可转换为链接,非常正常
免费咨询2010年

1
<a href="#" id="a" onclick="ChangeHref()">1.Change 2.Go</a>

<script>
function ChangeHref(){
document.getElementById("a").setAttribute("onclick", "location.href='http://religiasatanista.ro'");
}
</script>

0

要在单击链接时动态更改它:

<input type="text" id="emailOfBookCustomer" style="direction:RTL;"></input>
        <a 
         onclick="this.href='<%= request.getContextPath() %>/Jahanpay/forwardTo.jsp?handle=<%= handle %>&Email=' + document.getElementById('emailOfBookCustomer').value;" href=''>
    A dynamic link 
            </a>

0

这是我的看法。当用户按下“提交”按钮时,我需要通过从文本框中收集值来创建URL。

<html>
<body>

Hi everyone

<p id="result"></p>

<textarea cols="40" id="SearchText" rows="2"></textarea>

<button onclick="myFunction()" type="button">Submit!</button>

<script>
function myFunction() {
    var result = document.getElementById("SearchText").value;
	document.getElementById("result").innerHTML = result;
	document.getElementById("abc").href="http://arindam31.pythonanywhere.com/hello/" + result;
}		
</script>


<a href="#" id="abc">abc</a>

</body>
<html>


-1

我知道它有点旧的帖子。不过,它可能会有所帮助。

代替标签,如果可能的话,您也可以这样做。

 <script type="text/javascript">
        function IsItWorking() {
          // Do your stuff here ...
            alert("YES, It Works...!!!");
        }
    </script>   

    `<asp:HyperLinkID="Link1"NavigateUrl="javascript:IsItWorking();"`            `runat="server">IsItWorking?</asp:HyperLink>`

对此有何评论?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.