Javascript 如何禁用锚定(链接)标记(转换为跨度)

Javascript 如何禁用锚定(链接)标记(转换为跨度),javascript,jquery,dom,Javascript,Jquery,Dom,我有一堆锚定标签( 我只是想知道你们这些向导中是否有人有更巧妙的方法来实现相同的最终结果。将标准DOM方法与jQuery混合使用有点奇怪,也没有必要。您可以这样做: function aToSpan() { var $link = $('a'); var $span = $('<span>'); $link.after($span.html($link.html())).remove(); } 函数aToSpan(){ var$link=$('a'); 变量

我有一堆锚定标签(


我只是想知道你们这些向导中是否有人有更巧妙的方法来实现相同的最终结果。

将标准DOM方法与jQuery混合使用有点奇怪,也没有必要。您可以这样做:

function aToSpan() {
    var $link = $('a');
    var $span = $('<span>');
    $link.after($span.html($link.html())).remove();
}
函数aToSpan(){
var$link=$('a');
变量$span=$('');
$link.after($span.html($link.html()).remove();
}
这只是将链接的内容复制到新的
,然后替换

  • 您可以使用jQuery API

    $('#myButton').click(function(){
        $("#someDiv a").replaceWith(function(){
            return $("<span>" + $(this).html() + "</span>");
        });
    });
    
    $('#myButton')。单击(函数(){
    $(“#someDiv a”).replacetwith(function(){
    返回$(“”+$(this.html()+);
    });
    });
    

    在这里拉小提琴:

    从naveen的答案中,您将丢失href标记

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

    $('#myButton').click(function(){
        $("#someDiv a").replaceWith(function(){
            return $("<span href=\""+$(this).attr('href')+"\">" + $(this).html() + "</span>");
        });
    });
    
    $('#myButton')。单击(函数(){
    $(“#someDiv a”).replacetwith(function(){
    返回$(“”+$(this.html()+);
    });
    });
    
    pal这会生成无效的标记。span没有href标记
    data href
    将是更好的属性名称选择,甚至是有效的HTML5。我需要保留