for循环中的Javascript格式错误

时间:2009-11-03 23:54:59

标签: javascript debugging

我从example复制了此代码。我已经读过100次了。

Array.prototype.map = function(fn) {
    var r = [];
    var l = this.length;
    for(var i = 0; i < l; i++) {
        r.push(fn(this[i]));
    }
    return r;
};

为什么Firefox说:

not well-formed
file:///some/path.html                         Line: 5
    for(var i = 0; i < l; i++) {
    -------------------^

更新

只有在为页面打开Firebug时才会显示错误。

4 个答案:

答案 0 :(得分:9)

您在HTML页面中使用Javascript代码声称完全符合XHTML标准。因此,<字符不能出现在Javascript中,因为它将被解释为XHTML标记的开头。

有很多方法可以解决这个问题。

您可以更改DOCTYPE并使其不是XHTML 您可以将Javascript放在<![CDATA[部分中 您可以将Javascript移动到单独的.js文件中 您可以使用<&lt &每次&amp;转义{{1}}。我不推荐这个选项;它会使你的代码不可读,并且几乎肯定不会在IE中运行。

答案 1 :(得分:1)

可能你的错误不在这段代码中,但是在它之上的某些东西会让错误涓涓细流。因此,不要在此代码中发现错误,请查看上面可能导致此错误的格式错误的HTML或javascript。

答案 2 :(得分:0)

适合我。请发布完整文件,并确保使用脚本标记。

我发布了一个validating pastebin file(Chetan的技术上无效),它可以和Firebug一起使用。所以我建议你回来一整页验证代码不起作用。

答案 3 :(得分:0)

如果我使用以下HTML和您的文本作为“test.js”,我在Firebug中也没有错误。

<html>
<head>
    <script type="text/javascript" src="test.js"></script>
</head>
<body>
    test
</body>
</html>