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

Cli*_*ote 19 javascript jquery

可能重复:
如何使用jQuery更改超链接的href

我有这个链接:

<a id="myLink_33" href="javascript:toggleMe(1);">Toggle</a>
Run Code Online (Sandbox Code Playgroud)

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

<a id="myLink_33" href="javascript:toggleMe(0);">Toggle</a>
Run Code Online (Sandbox Code Playgroud)

Tim*_*ren 32

$("#myLink_33").attr("href", "javascript:toggleMe(0);");
Run Code Online (Sandbox Code Playgroud)


Cra*_*loy 5

这肯定会奏效,但我想提出一个替代方案.

HTML

<a class="toggle">Toggle</a>
Run Code Online (Sandbox Code Playgroud)

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');
    }
  });
});
Run Code Online (Sandbox Code Playgroud)

这使您不必使用切换的href属性,并允许您通过样式和诸如此类的东西来控制事物.虽然我对jQuery的经验并不是那么广泛但是这样的东西看起来有点传统.


小智 5

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

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

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

但是,假设锚点class="myLink_33"的attr变化,

$('.myLink_33').attr('href','http://www.google.com')
Run Code Online (Sandbox Code Playgroud)

会按预期工作。