2009-08-26 35 views
15

Duplicar posibles:
How to change the href for a hyperlink using jQueryCómo cambiar el atributo href de un enlace usando jQuery

tengo este enlace:

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

¿Cómo puedo cambiar el atributo href de este enlace usando Javascript/jquery para que el enlace se convierta en este:

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

Respuesta

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

que sin duda trabajar, sin embargo, me gustaría proponer una 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'); 
    } 
    }); 
}); 

Esto te saca de tener que utilizar el atributo href de las palancas y le permite controlar las cosas a través de un estilo y otras cosas. Aunque mi experiencia con jQuery no es tan amplia, algo así parece un poco más convencional.

3

En mi experiencia el cambio de atributos con un selector de id. No actualizará el elemento real.
Sin embargo, usar la clase y otros selectores funcionará. Así

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

va a cambiar el valor del atributo href solamente cuando se les pregunta, pero cuando el enlace se selecciona realmente, se usará por defecto el valor href que poseía cuando la página cargada.

Sin embargo asumiendo el ancla tenían un class="myLink_33", el cambio attr,

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

iba a funcionar como se espera.

Cuestiones relacionadas