2011-07-10 31 views
8

我有一堆锚标记(<a>),我需要转换为<span>标记。我不需要这样做来禁用点击(我知道关于preventDefault()并从点击事件处理程序返回false)。我只需要这样做,以启用拖放排序(IE禁止在锚标签上,但允许跨度)。如何禁用锚(链接)标记(转换为跨度)

我有一个很好的工作解决方案。

http://jsfiddle.net/5HGbx/

我只是想知道,如果你的任何向导有实现相同的最终结果的巧妙方式。

回答

29

你可以使用replaceWith从jQuery的API

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

小提琴这里:http://jsfiddle.net/naveen/ufYCt/1/

1

从纳文的回答,如果你想href标记也只是修改了这个原则,你就失去了HREF标签

...

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

pal这会产生无效的标记。 span没有href标记 – naveen

+0

'data-href'将是属性名称的更好选择,甚至可以是有效的HTML5。 –