如何删除html标签(span)仅使用特定的类名称并且没有来自字符串的内部内容?

问题描述 投票:0回答:2

我想从字符串中删除一些不需要的标记,以将干净的字符串存储到数据库中。

我试图将字符串与正则表达式相关联。这就是我所尝试的 - https://codepen.io/rushijagani/pen/wZxWRj

var data = '<p><span class="unwanted-span-one" data-hello="unwated-attr">Donec</span> rutrum congue leo eget malesuada. <span>Mauris</span> blandit aliquet elit, eget <span class="unwanted-span-two" data-hello="unwated-attr-two"> malesuada</span>.</p>'

我想删除所有类别名称以“unwanted-span-”开头的span标记,它应该只删除标记换行而不是内容。

所以期望的输出应该如下

var data = '<p>Donec rutrum congue leo eget malesuada. <span>Mauris</span> blandit aliquet elit, eget malesuada.</p>'

请注意 - 我们只需删除类名称为“unwanted-span-”的span标记,其他范围应保持不变。

javascript jquery string
2个回答
1
投票

你可以简单地使用

var allData = $('*[class^="unwanted-span-"]').contents().unwrap();
console.log($(".all").html())

如果您不想更改HTML,可以试试这个:

var match = $('*[class^="unwanted-span-"]').get(0);
var test = $('p').html().replace(match.outerHTML,match.innerHTML);
console.log( test );

当然,如果你有多个比赛,你必须迭代所有比赛:)


0
投票

您可以像这样使用运算符开头:

var allData = $('.all').find("span[class^='unwanted-span']").css('color','blue');

我编辑你的codepen容器https://codepen.io/anon/pen/qwyayP

要删除使用此:

var allData = $('.all').find("span[class^='unwanted-span']").remove(); 

要解开span文本,请使用以下命令:

var allData = $('.all').find('span[class^="unwanted-span-"]').contents().unwrap();

console.log($('.all').html());
© www.soinside.com 2019 - 2024. All rights reserved.