使用javascript for循环删除html注释会产生错误

时间:2014-04-03 21:03:22

标签: javascript html comments

您好我有一个时间的野兽从html代码删除评论(所以innerHTML计数在IE中工作)。我承认我不是最亮的灯泡:)我无法访问(知识)jquery或源代码来删除它们。我对正则表达式很糟糕所以我没试过这个

我尝试了以下代码

<script>        
function clean(node)
        {
    for(var n = 0; n &lt; node.childNodes.length; n++)
      {
        var child = node.childNodes[n];
        if
        (
          child.nodeType === 8 ||
          (child.nodeType === 3 &amp;&amp; !/S/.test(child.nodeValue))
        )
        {
          node.removeChild(child);
          n--;
        }
        else if(child.nodeType === 1)
        {
          clean(child);
        }
      }
    }
</script>

但这在所有浏览器中都给我错误:

SyntaxError: missing ) after for-loop control
for(var n = 0; n &lt; node.childNodes.length; n++)

任何想法都会很棒。页面上有一堆jquery脚本,但是我无法控制这些脚本并且它们没有发生任何错误,因此我认为这不是相关的。

提前谢谢

2 个答案:

答案 0 :(得分:0)

我首先要替换“&amp; lt;”用“&lt;”,你的&符号也一样。

答案 1 :(得分:0)

通过Javascript删除评论后,它们仍会在View Source中显示,因为它在 Javascript运行之前显示来自的来源。

如果您不希望用户看到评论,请不要使用HTML评论。在服务器端块内使用服务器端语言的注释。像:

<%
   //comment: printing variable x
   out.print(x);
%>