gpt4 book ai didi

javascript - jQuery 从字符串中删除某些标签

转载 作者:行者123 更新时间:2023-11-28 20:01:49 24 4
gpt4 key购买 nike

我有一个字符串,我想删除所有图形标签。我尝试过以下方法:

var s = '<html><body>report content<figure id="fig2" data-contenttype="chart"><img src="chart.jpg"/><div>chart 1</div></figure><div>body content</div><figure id="fig2"><img src="chart2.jpg"/><div>chart 2</div></figure></body></html>';
var result = $(s).find('figure').remove();

这不起作用的原因是 find 找不到figure元素,因为它们有子元素。有谁知道如何删除所有图形节点(以及其中的所有内容)并保留 html 的其余部分?

请注意,html 不在 DOM 中,我需要通过字符串操作来完成此操作。我不想碰 DOM。

最佳答案

您可以将 string 包装在 jQuery 对象中并执行某种操作,如下所示:

var removeElements = function(text, selector) {
var wrapped = $("<div>" + text + "</div>");
wrapped.find(selector).remove();
return wrapped.html();
}

使用

var removedString = removeElements('<html><body>report content<figure id="fig2" data-contenttype="chart"><img src="chart.jpg"/><div>chart 1</div></figure><div>body content</div><figure id="fig2"><img src="chart2.jpg"/><div>chart 2</div></figure></body></html>','figure');

这种方法的优点在于您可以指定要删除的 jquery 选择器。

保留 html 和 body 标记的另一种方法:

var s = '<html><body>report content<figure id="fig2" data-contenttype="chart"><img src="chart.jpg"/><div>chart 1</div></figure><div>body content</div><figure id="fig2"><img src="chart2.jpg"/><div>chart 2</div></figure></body></html>';
var $s = s.replace(/<figure>(.*)<\/figure>/g, "");
console.log($s)

关于javascript - jQuery 从字符串中删除某些标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21548764/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com