如何从字符串中删除具有属性的HTML标签?

马丁·阿杰

我有一个像这样的问答网站。我也有一个textarea及其下的预览(与SO完全相同)我使用markdown库将某些符号转换为HTML标签。例如JS库替换**<b>好的,一切都很好。

现在,我需要转义具有属性的HTML标记。我可以这样用PHP来做到这一点

<?php

$data = <<<DATA
<div>
    <p>These line shall stay</p>
    <p class="myclass">Remove this one</p>
    <p>But keep this</p>
    <div style="color: red">and this</div>
</div>
DATA;

$dom = new DOMDOcument();
$dom->loadHTML($data, LIBXML_HTML_NOIMPLIED);

$xpath = new DOMXPath($dom);

$lines_to_be_removed = $xpath->query("//*[count(@*)>0]");

foreach ($lines_to_be_removed as $line) {
    $line->parentNode->removeChild($line);
}

// just to check
echo $dom->saveHtml($dom->documentElement);
?>

我不确定上面的代码是最好的,但是如您所见(在我链接的小提琴中),它可以按预期工作。我的意思是,它将删除至少一个属性的节点。现在,我需要通过JS (或jQuery) 来做到这一点对于textarea预览模拟器,我需要这样做无论如何,我该怎么做?我需要正则表达式吗?

布莱恩·格雷泽扎克(BryanGrezeszak)

您可以执行以下操作:

$('.myTextArea *').each(function(){
    if (this.attributes.length)
        $(this).remove();
});

JSFIDDLE

它不是最有效的,但是如果只是文本区域预览,那应该没问题。我建议尽可能少地运行它。据我所知,没有选择器(jQuery或其他方式)可以做到这一点……所以您必须让JS来工作。


根据评论进行编辑:

要不删除元素,只需删除周围的标签,请执行以下操作:

$('.myTextArea *').each(function(){
    if (this.attributes.length)
        this.outerHTML = this.textContent;
});

JSFIDDLE

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从字符串中删除具有属性的HTML标签?

来自分类Dev

在标签中显示具有多个属性的字符串

来自分类Dev

Python,从字符串中删除所有html标签

来自分类Dev

如何通过REGEX从字符串中删除HTML标签?

来自分类Dev

如何从字符串中删除html标签?

来自分类Dev

如何从python字符串中删除HTML标签?

来自分类Dev

如何检查和删除字符串中的html标签

来自分类Dev

从字符串中删除html标签

来自分类Dev

如何从字符串中剥离所有HTML标签?

来自分类Dev

如何快速删除字符串中的所有html

来自分类Dev

如何从字符串中删除所有HTML

来自分类Dev

如何快速删除字符串中的所有html

来自分类Dev

如何从打字稿中具有 html 标签的字符串变量中剪切 4 行文本

来自分类Dev

替换 HTML 字符串中 HTML 标签属性的引号

来自分类Dev

从AngularJS中的字符串中删除HTML标签

来自分类Dev

如何删除 HTML 文件中不属于 HTML 标签的字符串

来自分类Dev

如何使用BeautifulSoup从Python中的字符串中删除html标签

来自分类Dev

如何使用BeautifulSoup从Python中的字符串中删除html标签

来自分类Dev

删除html字符串中除<a>之外的所有标签

来自分类Dev

从字符串中删除斜体和粗体html标签?

来自分类Dev

从html字符串中删除多余的“ a href”标签

来自分类Dev

使用jQquery从字符串中删除html标签

来自分类Dev

从字符串中删除html标签,但恢复\ n

来自分类Dev

Powershell删除字符串内容中的HTML标签

来自分类Dev

从laravel刀片上的字符串中删除HTML标签

来自分类Dev

从字符串中删除无效的html标签

来自分类Dev

从字符串中删除html标签,但恢复\ n

来自分类Dev

使用Jquery从html字符串中删除标签

来自分类Dev

如何从字符串中删除两个标签之间出现的所有子字符串?

Related 相关文章

  1. 1

    如何从字符串中删除具有属性的HTML标签?

  2. 2

    在标签中显示具有多个属性的字符串

  3. 3

    Python,从字符串中删除所有html标签

  4. 4

    如何通过REGEX从字符串中删除HTML标签?

  5. 5

    如何从字符串中删除html标签?

  6. 6

    如何从python字符串中删除HTML标签?

  7. 7

    如何检查和删除字符串中的html标签

  8. 8

    从字符串中删除html标签

  9. 9

    如何从字符串中剥离所有HTML标签?

  10. 10

    如何快速删除字符串中的所有html

  11. 11

    如何从字符串中删除所有HTML

  12. 12

    如何快速删除字符串中的所有html

  13. 13

    如何从打字稿中具有 html 标签的字符串变量中剪切 4 行文本

  14. 14

    替换 HTML 字符串中 HTML 标签属性的引号

  15. 15

    从AngularJS中的字符串中删除HTML标签

  16. 16

    如何删除 HTML 文件中不属于 HTML 标签的字符串

  17. 17

    如何使用BeautifulSoup从Python中的字符串中删除html标签

  18. 18

    如何使用BeautifulSoup从Python中的字符串中删除html标签

  19. 19

    删除html字符串中除<a>之外的所有标签

  20. 20

    从字符串中删除斜体和粗体html标签?

  21. 21

    从html字符串中删除多余的“ a href”标签

  22. 22

    使用jQquery从字符串中删除html标签

  23. 23

    从字符串中删除html标签,但恢复\ n

  24. 24

    Powershell删除字符串内容中的HTML标签

  25. 25

    从laravel刀片上的字符串中删除HTML标签

  26. 26

    从字符串中删除无效的html标签

  27. 27

    从字符串中删除html标签,但恢复\ n

  28. 28

    使用Jquery从html字符串中删除标签

  29. 29

    如何从字符串中删除两个标签之间出现的所有子字符串?

热门标签

归档