2011-07-10 15 views
8

Tengo un montón de etiquetas de anclaje (<a>) que necesito convertir a etiquetas <span>. No necesito hacer esto para desactivar el hacer clic (sé de preventDefault() y devolver false desde el controlador de eventos click). Solo necesito hacer esto para habilitar la selección de arrastrar y soltar (que IE prohíbe en una etiqueta de anclaje pero permite en un lapso de tiempo).Cómo deshabilitar una etiqueta de anclaje (enlace) (convertir a span)

Tengo una solución de trabajo que está bien.

http://jsfiddle.net/5HGbx/

me pregunto si alguno de ustedes magos tienen una forma más pulido de lograr el mismo resultado final.

Respuesta

29

podría utilizar replaceWith de API jQuery

$('#myButton').click(function(){ 
    $("#someDiv a").replaceWith(function(){ 
     return $("<span>" + $(this).html() + "</span>"); 
    }); 
}); 

violín aquí: http://jsfiddle.net/naveen/ufYCt/1/

1

de la década de naveen responder perderá la etiqueta href

si quieres etiqueta href demasiado justo modificar esta de la siguiente manera ...

$('#myButton').click(function(){ 
    $("#someDiv a").replaceWith(function(){ 
     return $("<span href=\""+$(this).attr('href')+"\">" + $(this).html() + "</span>"); 
    }); 
}); 
+0

amigo Esto genera un marcado no válido. span no tiene una etiqueta href – naveen

+0

'data-href' sería una mejor opción para el nombre del atributo, que incluso sería válido HTML5. –

Cuestiones relacionadas