如何使用Jquery更改链接的href属性[重复]

Posted

技术标签:

【中文标题】如何使用Jquery更改链接的href属性[重复]【英文标题】:How to change href attribute of a link using Jquery [duplicate] 【发布时间】:2010-11-22 23:23:51 【问题描述】:

可能重复:How to change the href for a hyperlink using jQuery

我有这个链接:

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

如何使用 Javascript/jquery 更改此链接的 href 属性,使链接变为:

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

【问题讨论】:

***.com/questions/179713/… 【参考方案1】:
$("#myLink_33").attr("href", "javascript:toggleMe(0);");

【讨论】:

【参考方案2】:

这肯定行得通,但是我想提出一个替代方案。

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 的体验并不那么广泛,但像这样的东西似乎更传统一些。

【讨论】:

【参考方案3】:

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

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

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

但是假设锚点有 class="myLink_33",则 attr 发生变化,

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

会按预期工作。

【讨论】:

以上是关于如何使用Jquery更改链接的href属性[重复]的主要内容,如果未能解决你的问题,请参考以下文章

通过jQuery更改链接href [重复]

如何使用 jQuery 更改超链接的 href? [复制]

如果属性值= [重复],则jquery更改类

检测使用jQuery更改的禁用属性[重复]

在 jQuery 上使用 !important 更改 fullcalendar 的 css 类属性 [重复]

使用 JQuery 更改 :before css 选择器的宽度属性 [重复]