2012-11-28 50 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

相關問題