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

时间:2011-07-10 06:37:37

标签: javascript jquery dom

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

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

http://jsfiddle.net/5HGbx/

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

3 个答案:

答案 0 :(得分:31)

您可以使用jQuery API中的replaceWith

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

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

答案 1 :(得分:6)

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

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

这只会将链接的内容复制到新的<span>,然后将<a>替换为新的<span>

参考文献:

答案 2 :(得分:1)

从naveen的回答中你将失去 href 标签

如果你想要href标签,只需修改如下......

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