【问题标题】:Quick way to replace html comments in javascript在javascript中替换html注释的快速方法
【发布时间】:2012-09-18 07:50:01
【问题描述】:

假设您有一个来自服务器的注释 html 结构(它被注释以提高渲染速度,如 FB)。之后,我们应该删除我们的内容并允许浏览器呈现 html。最快的方法是什么?

【问题讨论】:

  • 这可能会有所帮助:stackoverflow.com/questions/5653207/…
  • 谢谢,我以前见过,甚至实现了类似的东西,但我正在研究最快的方法。
  • 使用纯JS会比使用jQuery快。
  • 是的,我只是在研究方法。我们可以只删除评论节点并用它的内容替换它吗?
  • 对,抱歉,我误会了 - 我以为您试图从 DOM 中删除 cmets(及其内容)。如果您只是删除 '' 标签,那么最好的选择可能是取消注释插件,正如 bart s 所发布的那样

标签: javascript jquery html


【解决方案1】:

【讨论】:

  • 似乎没有优化:) 但nodeType === 8 的想法还可以
【解决方案2】:

您可以使用“content()”方法来获取包括 cmets 在内的所有节点:light 和 plugin free !!

那么你应该使用“filter()”方法过滤集合

$container
    .contents()
    .filter(function(){ return this.nodeType == 8; })
    .remove(); // replaceWith()  etc.

【讨论】:

    【解决方案3】:
    功能_removeComments(节点){ if (!node || !node.parentNode) 返回; if (node.nodeType == 8) { node.parentNode.removeChild(node); 返回; } for (var c = node.firstChild; c; ) { var n = c.nextSibling; _removeComments(c); c = n; } } 功能删除评论(元素){ element.each(函数() { _removeComments(这个); }); }

    【讨论】:

      【解决方案4】:

      获取注释的 DOM,然后执行 replace()

        var dom =  $.trim($('#domcontainer').html()).replace('<!--','').replace('-->','');
      

      【讨论】:

      • 我正在使用.replace(/&lt;!--([\s\S]*?)--&gt;/mig, '$1');
      【解决方案5】:
      $(stringHtml).comments().remove();
      

      ...使用 jquery-cmets 插件:

      http://www.bennadel.com/blog/1563-jquery-comments-plug-in-to-access-html-comments-for-dom-templating.htm

      【讨论】:

      【解决方案6】:

      试试这个方法。为元素节点提供带有注释的 HTML,这将删除注释块并显示 HTML。

      function uncommentNode(node) {
          var nodestr = node.innerHTML;
          var noderevealHTML =  nodestr.replace(/<!--/ig, '').replace(/-->/ig, ''); // Update expressions here.
          node.innerHTML = noderevealHTML;
      }
      

      如果您的注释 HTML 在注释开始/结束标记中有三个或更多破折号 (

      这里有一个JSFIDDLE 以获得更好的解释。

      【讨论】:

        猜你喜欢
        • 2011-05-06
        • 2013-04-20
        • 1970-01-01
        • 2010-12-18
        • 2016-11-14
        • 2015-06-01
        • 2019-09-03
        • 2015-10-04
        • 2012-03-17
        相关资源
        最近更新 更多