获取"未捕获的SyntaxError:意外的令牌;"使用for循环时出错

时间:2015-05-30 20:09:34

标签: javascript html for-loop

这里我有一个循环到JSF应用程序中的html元素的迭代器。

        var tmp = document.getElementsByTagName("input");
        var counter = 0;
        var arr = new Array();
        for (var i = 0; i<tmp.length; i++) {
            if (tmp[i].parentNode.nodeName === "TD" && tmp[i].getAttribute("type") !== "submit") {
                arr[counter] = tmp[i];
                counter++;
            }
        }

此循环位于此脚本标记内:

<script type="text/javascript">
<!--    
     //-->
</script>

当我在网络浏览器中加载页面时,我收到以下错误(显示在谷歌浏览器开发人员工具中)

enter image description here enter image description here

2 个答案:

答案 0 :(得分:3)

正如您在屏幕截图中看到的那样,HTML页面中的脚本有&lt;,其中应该有<。这是您的语法错误。您是否使用一些“逃避”HTML代码的模板语言生成此页面?这会导致这个问题。

一个好的解决方案是将JavaScript代码放在单独的.js文件中。这应该避免转义并保持代码不变。

如果您确实需要在HTML页面中安装内联JavaScript,那么大多数模板语言都可以关闭特定文本片段的转义。

答案 1 :(得分:2)

图片2中的线与图片1中的线不同。<代替&lt;<initWithSomething的HTML转义码。随后的错误不在于您的代码本身,而在于您的开发工作流程中的某个位置。您要么使用错误的内容(我认为不太可能)保存文件,要么您的网络服务器或任何预处理器都会被脚本标记内的HTML转义代码搞乱。