【问题标题】:While parsing text to remove <> tags are being added. How do I fix that?正在添加解析文本以删除 <> 标记。我该如何解决?
【发布时间】:2013-12-08 20:24:03
【问题描述】:

我使用 git status 获得了这些输出,其中包含 &lt;file&gt;,我一直在手动添加到 html 文件中。

我正在尝试替换 html 代码标记中的 ,因此 &lt;file&gt; 显示为常规文本而不是标记。

在 Firefox 中,结束标签 &lt;/file&gt; 一直被插入。

代码如下:

var codeMe = function(){
    var code = document.getElementsByTagName('code'),
        text = '';
    for(var i=0; i<code.length; i++){
        text = code[i].innerHTML;
        text = text.replace(/</g, '&lt;')
        text = text.replace(/>/g, '&gt;');
        code[i].innerHTML = text;
    }
};
codeMe();

标签在codeMe() 函数被调用之前就被插入了。当我检查带有codeMe()code 时,注释掉了那些&lt;/file&gt; 结束标签。

如果我不能阻止浏览器这样做,我只需要在替换 后删除那些额外的标签。虽然如果有的话我更喜欢更好的方法。

【问题讨论】:

  • &lt;/file&gt; 标签是由解析/序列化周期引起的。如果您不打算在将 &lt;file&gt; 字符串放入 DOM 之前对其进行 html 编码,那么在使用 innerHTML 进行序列化时,&lt;/file&gt; 标签是不可避免的。但它们总是完全相同的形式,所以只需字符串查找并删除它们。
  • @Alohci 好的。应该很容易。我只是想可能还有其他方法。 &lt;file&gt; 字符串是页面加载时 html 的一部分。

标签: html regex replace innerhtml


【解决方案1】:

给你:Fiddle

(function codeMe() {
    $('code').text($('code').html());
})();

这当然是使用我的 HTML:

<div id=one>See me</div>
<code> <file> You dont see me </file> </code>

只有在发布后我才真正看到了你想要的东西,而 jQuery 不是其中之一。

如果其他人需要它,我猜它就在这里:\

【讨论】:

  • 没关系。我喜欢 jQuery,但它不适合这个项目。很高兴知道以供将来参考。我会投票。
猜你喜欢
  • 2012-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多