2009-08-26 14 views
15

Powiel możliwe:
How to change the href for a hyperlink using jQueryJak zmienić atrybut href łącza przy użyciu jQuery

Mam ten link:

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

Jak mogę zmienić atrybut href tego linku za pomocą Javascript/jquery, więc link staje się następujący:

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

http://stackoverflow.com/questions/179713/how-to-change-the-href-for-a-hyperlink-using-jquery –

Odpowiedz

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

To z pewnością działa, jednak chciałbym zaproponować alternatywę.

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'); 
    } 
    }); 
}); 

to dostaje z konieczności użyć atrybutu href dla przełączników i pozwala kontrolować rzeczy poprzez stylizacji i etażerka. Chociaż moje doświadczenie z jQuery nie jest tak szerokie, coś takiego wydaje się nieco bardziej konwencjonalne.

3

Z mojego doświadczenia wynika, że ​​zmiana atrybutów za pomocą selektora identyfikatora nie spowoduje zaktualizowania faktycznego elementu.
Jednak użycie klas i innych selektorów będzie działać. Więc

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

zmieni wartość atrybutu href tylko wtedy, gdy zakwestionowany, ale gdy połączenie jest właściwie wybrany, będzie on domyślnie wartość href posiadał, gdy strona załadowana.

Jednak zakładając kotwicę miała class="myLink_33", zmiany w ciekawy,

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

będzie działać zgodnie z oczekiwaniami.

Powiązane problemy