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

时间:2017-12-29 15:47:29

标签: javascript html

我有一个包含HTML标签的字符串 我想仅将标记为<span></span>的HTML标记呈现为HTML元素。 所有非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/

3 个答案:

答案 0 :(得分:2)

您需要使用HTML实体来转义这些代码中的<>

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

请参阅小提琴:https://jsfiddle.net/ytLftxww/1/

答案 1 :(得分:1)

=UNIQUE(FILTER(Sheet1!B3:B, Sheet1!E3:E = "Citizen"))

取消了&lt; &GT;为你工作?

updated fiddle

答案 2 :(得分:1)

您可以&lt使用<和&amp; &gt的{​​{1}}。