如何使用Jquery更改链接的href属性

22

可能是重复问题:
如何使用jQuery更改超链接的href属性

我有这个链接:

<a id="myLink_33" href="javascript:toggleMe(1);">Toggle</a>

我如何使用Javascript/jquery更改此链接的href属性,使得链接变成这样:

<a id="myLink_33" href="javascript:toggleMe(0);">Toggle</a>

https://dev59.com/bnVC5IYBdhLWcg3wz0h9 - Junior Mayhé
3个回答

35
$("#myLink_33").attr("href", "javascript:toggleMe(0);");

6

根据我的经验,使用id选择器更改属性将不会更新实际元素。
但是使用class和其他选择器可以起作用。因此,

$('#myLink_33').attr('href','http://www.google.com')

只有在查询时才会更改href属性的值,但是当链接被选中时,它将默认为页面加载时所具有的href值。

但假设锚点有一个class="myLink_33",则该属性变化:

$('.myLink_33').attr('href','http://www.google.com')

会按预期工作。


5
那肯定可以行得通,但我想提出另一种选择。
HTML
<a class="toggle">Toggle</a>

jQuery/JavaScript

$(document).ready(function(){
  $('a.toggle').click(function (eventObject){
    var target = $(eventObject.target);

    // will add or remove the class automatically
    target.toggleClass('toggle_on');

    if(target.hasClass('toggle_on')){
      /* toggle on code here */
      alert('Toggle On');
    }
    else{
      /* toggle off code here */
      alert('Toggle Off');
    }
  });
});

这样可以避免使用href属性来切换并通过样式等方式控制事物。尽管我对jQuery的经验不是很丰富,但这种方法更为传统。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接