javascript - 尝试使用 innerHTML 将 html 标签显示为文本

标签 javascript html

我有一个包含 HTML 标签的字符串。
我只想将 span 标签呈现为 HTML 元素 <span></span> . 不是 span 标签的所有其他标签都应被视为常规文本。

我想要达到的结果是为我想要的任何文本着色,即使它包含 HTML 标签。

我失败了。

是否有任何其他我可以尝试的技术或解决方法?

var problem = ["<h1>","</h1>"];

var red_text = "<span style='color:red'>i am red </span>";

var green_text = "<span style='color:green'>" +
                                problem[0] + 
                                "i am green" +
                                problem[1] +
                                "</span>";

//the real result should have <h1> </h1>
var expected_text = red_text + "<span style='color:green'>|h1|i am green|/h1|</span>";

document.getElementById("demo").innerHTML = red_text + green_text;

document.getElementById("expected").innerHTML = expected_text;

HTML 和 JavaScript 代码位于:
https://jsfiddle.net/ytLftxww/1/

最佳答案

您需要使用 HTML 实体来转义 <>在这些标签中。

例如:"<span style='color:green'>&lt;h1&gt;i am green&lt;/h1&gt;</span>"

参见 fiddle :https://jsfiddle.net/ytLftxww/1/

关于javascript - 尝试使用 innerHTML 将 html 标签显示为文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48025009/

相关文章:

javascript - 用于创建 HTML 卡片的 JS jQuery 循环

javascript - 网页设计中的初始页面 : How do you maintain searchability?

javascript - 如何制作一个 html 文件来列出其目录中的文件?

javascript - 如何同时调用两个api?

javascript - 如何删除在 JavaScript 循环中连接字符串时添加的额外字符?

javascript - 使用 Class 声明原型(prototype)默认值的 ecmascript 6 语法

javascript - native 应用程序和 chrome-extension 之间的连接在一段时间后中断

javascript - 如果应用程序已经在监听,如何添加快速路线?

javascript - 如何使用 Jquery 改变 li 的位置

html - 如何禁用 CSS 类对嵌套元素的影响?