2009-08-26 9 views
15

Eventuali duplicati:
How to change the href for a hyperlink using jQueryCome cambiare attributo href di un collegamento mediante Jquery

ho questo link:

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

Come posso modificare l'attributo href di questo collegamento utilizzando Javascript/jquery in modo che il collegamento diventi questo:

<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 –

risposta

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

che sicuramente funzionerà, però mi piacerebbe proporre un'alternativa.

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

In questo modo si esce di dover utilizzare l'attributo href per i comandi e consente di controllare le cose attraverso lo stile e quant'altro. Sebbene la mia esperienza con jQuery non sia così ampia, qualcosa del genere sembra un po 'più convenzionale.

3

Nella mia esperienza, la modifica degli attributi utilizzando un selettore di ID non aggiornerà l'elemento reale.
Tuttavia, l'utilizzo della classe e di altri selettori funzionerà. Così

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

cambierà il valore dell'attributo href solo quando interrogato, ma quando il collegamento viene effettivamente selezionato, questo verrà impostato al valore href possedeva quando la pagina caricata.

Tuttavia assumendo l'ancora avuto un class="myLink_33", il cambiamento attr,

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

avrebbe funzionato come previsto.

Problemi correlati