我有一个正在动态构建的列表,并且正在使用一些链接来填充数据。问题是我不希望数据像链接一样,但它是作为链接 (a) 出现的,我想在加载时将其更改为 (p) 以删除任何链接功能,但我需要保留 href 标签. 基本上,有没有办法在加载时只更改 HTML 标记,而不必清空并附加整个内容块?
问问题
590 次
5 回答
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 属性。
于 2013-09-27T13:35:51.813 回答
0
与我之前的答案不同,如果您执行以下操作,则可以将链接的 HREF 部分保留为数据属性:
$('a').each(
var e = $(this);
e.replaceWith('<p data-href="' + e.attr('href') + '">' + e.html() + '</p>');
});
要访问该 HREF,您稍后会执行以下操作:
$('p').data('href');
于 2013-09-27T13:36:57.010 回答
0
尝试类似:
$('a').click(function(e){
e.preventDefault();
});
这将使您的 a 标签不可点击,但它们仍保留所有属性
于 2013-09-27T13:31:02.620 回答
0
您可以尝试阻止这些链接上的点击事件并更改光标以保留 A 标记以及您可能需要的任何 CSS(或用类似段落的格式替换该格式):
JS:
$('a').on('click', function() {return false;});
CSS:
a {cursor: default;}
此外,如果您确实需要,您可以将这些链接包装在段落中以实际构建该 P 标签:
$('a').wrap('<p></p>');
于 2013-09-27T13:31:43.943 回答
0
简单地添加“onclick=return false;”不是更明智的选择 ? Href 不是 P 的有效属性 - 它在语义上是错误的。或者,您可以将 element 更改为 p 并将其放入 data-href 属性中。
于 2013-09-27T13:32:01.720 回答