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