2012-11-28 22 views
1

Possible Duplicate:
SyntaxError: Unexpected token ILLEGAL在命名空间中使用jQuery的filter()时,导致这些JavaScript错误的原因是什么?

有人可以告诉我为什么这些错误正在发生以及如何解决它们?

/*global $:false */ 

Blah.BlahBlah = { 
    findLinks : function() { 
    "use strict"; 

    $('a').filter(function() { 
     return !(/https?:\/\/[^\/]*xyz.*/i.test($(this).attr('href'))); 
    }).text("***"); 
    ​} 
}; 

在JSHint抛出这些错误:

  • 10号线:}意外'。
  • 第11行:};预期'}'匹配第3行的'{',而是看到';'。
  • 第11行:};缺少分号。

铬控制台显示这个错误:

  • 未捕获的SyntaxError:意外令牌非法

然而,使用以封装匿名函数代码(JSFiddle)不会引发错误:

/*global $:false */ 

(function() { 

    "use strict"; 

    $('a').filter(function() { 
    return !(/https?:\/\/[^\/]*xyz.*/i.test($(this).attr('href'))); 
    }).text("***"); 

}()); 
+2

哪里是第10行? – Ibu

+1

当你从他们的网站上直接复制粘贴时,Jsfiddle复制一个非法字符......用铬打开你的检查员,你会看到它。 – ahren

+0

第一个示例似乎在Google Chrome控制台中正常工作。 – Ivan

回答

1

我把你的第一个片段粘贴到jsbin中,我看到一个st在倒数第二个大括号之前的范围字符} ...可能是一个通常不可打印的字符?

+0

我明白你的意思了。该角色已被删除。 – Cofey

+0

@Cofey,你好像说过这个问题不是那么快 – Alexander

相关问题