使用jquery更改标准段落的链接

使用jquery更改标准段落的链接,jquery,html,replace,Jquery,Html,Replace,我有一个动态构建的列表,它使用一些链接来填充数据。问题是我不希望数据像链接一样,但它是作为链接a出现的,我希望在加载时将其更改为p以删除任何链接功能,但我需要保留href标记。基本上,有没有一种方法可以在加载时只更改HTML标记,而不必清空并附加整个内容块?尝试以下方法: $('a').click(function(e){ e.preventDefault(); }); 这将使您的a标记不可单击,但它们仍保留所有属性您可以尝试阻止这些链接上的单击事件,并更改光标以保留a标记以及您可能需要的

我有一个动态构建的列表,它使用一些链接来填充数据。问题是我不希望数据像链接一样,但它是作为链接a出现的,我希望在加载时将其更改为p以删除任何链接功能,但我需要保留href标记。基本上,有没有一种方法可以在加载时只更改HTML标记,而不必清空并附加整个内容块?

尝试以下方法:

$('a').click(function(e){
  e.preventDefault();
});

这将使您的a标记不可单击,但它们仍保留所有属性

您可以尝试阻止这些链接上的单击事件,并更改光标以保留a标记以及您可能需要的CSS,或用类似以下段落的格式替换该格式:

JS:

CSS:

此外,如果您真的需要,您可以在段落中添加这些链接以实际构建p标记:

$('a').wrap('<p></p>');

简单地添加onclick=returnfalse;,不是更明智吗?Href不是P的有效属性-它在语义上是错误的。或者,您可以将元素更改为p,并将其放在data href属性中

$('a.specific_link_class').each(function(idx, el){

  $( this ).replaceWith( "<p data-href='" + $(this).attr('href') +"'>" + $( this ).text() + "</p>" );


});
这将更改具有特定类的所有链接将具有适当选择器的类更改为p标记,并将href作为新p标记的data href属性


与我之前的回答不同的是,如果您执行以下操作,则可以将链接的HREF部分保留为数据属性:

$('a').each(
    var e = $(this);
    e.replaceWith('<p data-href="' + e.attr('href') + '">' + e.html() + '</p>');
});

到目前为止,您尝试了什么?没有必要转换为另一个标记,除非您有理由这样做?
$('a.specific_link_class').each(function(idx, el){

  $( this ).replaceWith( "<p data-href='" + $(this).attr('href') +"'>" + $( this ).text() + "</p>" );


});
$('a').each(
    var e = $(this);
    e.replaceWith('<p data-href="' + e.attr('href') + '">' + e.html() + '</p>');
});
$('p').data('href');