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

时间:2013-09-27 13:28:29

标签: jquery html replace

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

5 个答案:

答案 0 :(得分:0)

尝试类似:

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

这会使您的标签无法点击,但仍会保留所有属性

答案 1 :(得分:0)

您可以尝试阻止这些链接上的click事件并更改光标以保留A标记以及您可能需要的任何CSS(或将该格式替换为类似段落的格式):

<强> JS:

$('a').on('click', function() {return false;});

<强> CSS:

a {cursor: default;}

此外,如果你真的需要,你可以wrap段落内的那些链接实际构建那个P标签:

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

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


});
  

这会将具有特定类的所有链接(使用适当的选择器更改类)更改为p标记,并使用href作为新p标记的data-href属性。

答案 4 :(得分:0)

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

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

要访问该HREF,您以后会这样做:

$('p').data('href');