如何禁用锚(链接)标记(转换为span)

Pet*_*ons 10 javascript jquery dom

我有一堆锚标签(<a>),我需要转换为<span>标签.我不需要这样做来禁用点击(我知道preventDefault()false从点击事件处理程序返回).我只需要执行此操作以启用拖放排序(IE禁止锚标记但允许跨度).

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

http://jsfiddle.net/5HGbx/

我只是想知道你们中的任何一个巫师是否有更好的方法来达到同样的最终结果.

nav*_*een 31

你可以使用replaceWithjQuery API

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

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


mu *_*ort 6

将标准DOM方法与jQuery混合有点奇怪且不必要.你可以这样做:

function aToSpan() {
    var $link = $('a');
    var $span = $('<span>');
    $link.after($span.html($link.html())).remove();
}
Run Code Online (Sandbox Code Playgroud)

这只是复制链接的内容到一个新的<span>,然后替换<a>用新的<span>.

参考文献: