Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中替换html注释的快速方法_Javascript_Jquery_Html - Fatal编程技术网

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

在javascript中替换html注释的快速方法,javascript,jquery,html,Javascript,Jquery,Html,假设您有一个来自服务器的已注释html结构(它被注释是为了提高渲染速度,如FB)。之后,我们应该删除我们的内容,并允许浏览器呈现html。最快的方法是什么?可能使用 …使用jquery注释插件: …使用jquery注释插件: 我们将获得已注释的DOM,然后执行replace() var dom=$.trim($('#domcontainer').html()).replace(''); 我们将获得已注释的DOM,然后执行replace() var dom=$.trim($('#domconta

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

可能使用

…使用jquery注释插件:

…使用jquery注释插件:


我们将获得已注释的DOM,然后执行
replace()

var dom=$.trim($('#domcontainer').html()).replace('');

我们将获得已注释的DOM,然后执行
replace()

var dom=$.trim($('#domcontainer').html()).replace('');
您可以使用“content()”方法来测试所有节点,包括注释:light和plugin free

然后应该使用“filter()”方法筛选集合

您可以使用“content()”方法测试所有节点,包括注释:light和plugin free

然后应该使用“filter()”方法筛选集合

函数_removeComments(节点){ 如果(!node | |!node.parentNode)返回; if(node.nodeType==8){ node.parentNode.removeChild(节点); 返回; } for(var c=node.firstChild;c;){ var n=c.nextSibling; _清除元素(c); c=n; } } 函数移除元素(元素){ 元素。每个(函数(){ _清除(本); }); } 函数_removeComments(节点){ 如果(!node | |!node.parentNode)返回; if(node.nodeType==8){ node.parentNode.removeChild(节点); 返回; } for(var c=node.firstChild;c;){ var n=c.nextSibling; _清除元素(c); c=n; } } 函数移除元素(元素){ 元素。每个(函数(){ _清除(本); }); }
试试这个方法。向元素节点提供已注释的HTML,这将删除注释块并显示HTML

function uncommentNode(node) {
    var nodestr = node.innerHTML;
    var noderevealHTML =  nodestr.replace(/<!--/ig, '').replace(/-->/ig, ''); // Update expressions here.
    node.innerHTML = noderevealHTML;
}
函数取消注释节点(node){
var nodestr=node.innerHTML;
var noderevealHTML=nodestr.replace(//ig',);//在此处更新表达式。
node.innerHTML=noderevealHTML;
}

如果您的注释HTML有三个或更多的破折号(),请尝试此方法。为元素节点提供注释HTML,这将删除注释块并显示HTML

function uncommentNode(node) {
    var nodestr = node.innerHTML;
    var noderevealHTML =  nodestr.replace(/<!--/ig, '').replace(/-->/ig, ''); // Update expressions here.
    node.innerHTML = noderevealHTML;
}
函数取消注释节点(node){
var nodestr=node.innerHTML;
var noderevealHTML=nodestr.replace(//ig',);//在此处更新表达式。
node.innerHTML=noderevealHTML;
}

如果您的注释HTML有三个或更多破折号(这可能会有帮助:谢谢,我以前见过它,甚至实现过类似的东西,但我一直在研究最快的方法。使用纯JS将比使用jQuery更快。是的,我只是在研究方法。我们可以只删除注释节点并用它的内容替换它吗。对了,对不起,我误解了-我以为你在尝试删除Commonts(及其内容)从DOM。如果你只是删除“”标记,那么你最好的选择可能是取消注释插件,正如bart sThis所发布的那样。这可能会有所帮助:谢谢,我以前见过它,甚至实现过类似的东西,但我一直在研究最快的方法。使用纯JS将比使用jQuery更快。是的,我只是在研究方法。我们可以只删除comme吗nt节点并将其替换为其内容。是的,对不起,我误解了-我以为您正在尝试从DOM中删除注释(及其内容)。如果您只是删除“”标记,那么最好的选择可能是取消注释插件,正如bart sI发布的那样,我正在使用
。replace(//mig,$1');
我正在使用
。replace(//mig,$1'));
似乎没有优化:)但是
节点类型===8的idea看起来没有优化:)但是
节点类型===8的idea没有优化:)但是
节点类型===8的idea没有优化类型错误:$(…)。注释不是函数没有优化类型错误:$(…)。注释不是函数
$container
    .contents()
    .filter(function(){ return this.nodeType == 8; })
    .remove(); // replaceWith()  etc.
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); }); }
function uncommentNode(node) {
    var nodestr = node.innerHTML;
    var noderevealHTML =  nodestr.replace(/<!--/ig, '').replace(/-->/ig, ''); // Update expressions here.
    node.innerHTML = noderevealHTML;
}