gpt4 book ai didi

javascript - 使用 javascript/jquery 遍历包含 HTML 的字符串中的所有标签

转载 作者:行者123 更新时间:2023-11-30 13:18:22 25 4
gpt4 key购买 nike

我正在使用富文本编辑器类型的控件,它是作为 jQuery 插件编写的。它基本上是在页面上插入一个 IFrame,并使其可编辑 - 对于富文本控件来说相当标准。

现在,我要做的是改进一个从文本编辑器中删除所有格式的选项。目前它正在使用大量正则表达式来完成,并且快速谷歌搜索表明这不是正确的方法。我希望允许这种取消格式化一定程度的灵 active ,以便我可以保留某些标签(如段落标签)。

我试图使用内置在 DOM 解析中的 jQuery 来轻松地做到这一点,但我似乎遇到了麻烦。

假设我有一个示例 HTML 字符串:

<Body><p>One <strong>Two</strong> <em>Three</em></p></Body>

我想取消格式,以便删除所有非段落标记。所以,我希望输出是一个看起来像这样的字符串:

<Body><p>One Two Three</p></Body>

示例代码:

//Some very simple HTML obtained from an editable iframe
var text = '<Body><p>One <strong>Two</strong> <em>Three</em></p></Body>';
var $text = $(text);

//All tags which are not paragraphs
$(':not(p)',$text).each(function() {
//Replace the tag + content with just content
$(this).html($(this).text());
});

//I'll be honest, I found this snippet somewhere else on stackoverflow,
//It seems to parse the jquery object back into an HTML string.
var returnVal = "";
$text.each(function(){
returnVal += $(this).clone().wrap('<p>').parent().html();
});
//Should be equal to '<p>One Two Three</p>'
return returnVal;

这似乎应该有效,但不幸的是它没有。在上面的示例中,“returnVal”与输入相同(减去“body” header 标签)。我在这里明显做错了什么吗?

最佳答案

替换这一行:

$(this).html($(this).text());

...用这个:

$(this).replaceWith($(this).text());

... 它应该可以工作(至少可以工作 here )。

关于javascript - 使用 javascript/jquery 遍历包含 HTML 的字符串中的所有标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11198476/

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