gpt4 book ai didi

javascript - 内部 HTML 转 ascii

转载 作者:行者123 更新时间:2023-12-03 08:30:23 25 4
gpt4 key购买 nike

我正在尝试编写自己的 Javascript 代码,将 html 转换为 ascii 代码(用于学习目的),以便浏览器呈现代码,就像您在文本编辑器中看到的那样。

在 Stack 上环顾四周后,我已经得到了下面的结果。我正在尝试将 html 元素转换为字符串;在这个阶段我只是想 .replace()将尖括号转换为 ascii。如果有人能告诉我就测试而言我哪里出了问题<body>标签显示在控制台中,我们将不胜感激。

<code class="lang-html">
<body></body>
</code>

(function() {
var html = $('.lang-html').innerHTML;
html.replace('<', '&lt;');
html.replace('>', '&gt;');
console.log(html);
});

澄清一下,我希望控制台会输出 &lt;body&gt;&lt;/body&gt; .

任何帮助将不胜感激。

最佳答案

一些事情:

$('.lang-html').innerHTML

假设这是 jQuery,这将不起作用。 .innerHTML 仅适用于原始 DOM 元素,例如从 document.getElementById(...) 返回的内容。相反,$('.lang-html') 返回一个 jQuery 集合,它有自己的访问器方法。你应该这样做:

$('.lang-html').html() // get the HTML as text from this element

继续,.replace() 不会修改原始字符串。它返回一个新副本。在最简单的情况下,您可以这样做:

var html = $('.lang-html')
.html()
.replace('<', '&lt;')
.replace('>', '&gt;');

但是您仍然需要将其重新分配给 HTML 源。同样,jQuery 为此提供了一个简单的 API。

$('.lang-html').html(html);

但是,还有一个问题。 .replace() 仅替换字符串中的第一个匹配项。要替换所有这些,您需要构造一个正则表达式并使用 /g (全局)标志。完整代码如下:

var $element = $('.lang-html');

var html = $element.html()
.replace(/</g, '&lt;')
.replace(/>/g, '&gt;');

$element.html(html)

关于javascript - 内部 HTML 转 ascii,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33359983/

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