假设您有一个来自服务器的注释 html 结构(它被注释以提高渲染速度,如 FB)。之后,我们应该删除我们的内容并允许浏览器呈现 html。最快的方法是什么?
问问题
7789 次
6 回答
3
您可以使用“content()”方法获取所有节点,包括评论:轻且无插件!
然后你应该使用“filter()”方法过滤集合
$container
.contents()
.filter(function(){ return this.nodeType == 8; })
.remove(); // replaceWith() etc.
于 2012-09-18T08:20:42.587 回答
3
可能使用jquery 取消注释插件
于 2012-09-18T07:53:55.380 回答
2
功能_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(这个); }); }
于 2014-04-23T23:06:36.640 回答
1
得到注释的 DOM 然后做一个replace()
var dom = $.trim($('#domcontainer').html()).replace('<!--','').replace('-->','');
于 2012-09-18T07:58:26.770 回答
1
$(stringHtml).comments().remove();
...使用 jquery-comments 插件:
于 2012-09-18T07:56:23.817 回答
0
试试这个方法。为元素节点提供带有注释的 HTML,这将删除注释块并显示 HTML。
function uncommentNode(node) {
var nodestr = node.innerHTML;
var noderevealHTML = nodestr.replace(/<!--/ig, '').replace(/-->/ig, ''); // Update expressions here.
node.innerHTML = noderevealHTML;
}
如果您的注释 HTML 在注释开始/结束标记中有三个或更多破折号 (<-- / <---),请务必更新上述函数中的 replace() 表达式。
这是一个JSFIDDLE以获得更好的解释。
于 2015-04-09T20:09:48.387 回答