在javascript中快速替换html注释的方法

时间:2012-09-18 07:50:01

标签: javascript jquery html

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

6 个答案:

答案 0 :(得分:4)

答案 1 :(得分:3)

您可以使用“content()”方法来查看所有节点,包括评论:light和plugin free !!

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

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

答案 2 :(得分:2)


function _removeComments(node) {
    if (!node || !node.parentNode) return;

    if (node.nodeType == 8) {
        node.parentNode.removeChild(node);
        return;
    }

    for (var c = node.firstChild; c; ) {
        var n = c.nextSibling;
        _removeComments(c);
        c = n;
    }
}

function removeComments(element) {
    element.each(function() {
        _removeComments(this);
    });
}

答案 3 :(得分:1)

$(stringHtml).comments().remove();

...使用jquery-comments插件:

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

答案 4 :(得分:1)

很好地获得评论的DOM然后执行replace()

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

答案 5 :(得分:0)

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

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

如果您的注释HTML在注释开始/结束标记中有三个或更多短划线(&lt; - /&lt; ---),请务必更新上述函数中的replace()表达式。

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