2011-01-10 277 views
0

,我沿介意我的jQuery的業務,當突然間,我試圖做此打算:奇怪的jQuery的錯誤

var myVariable = 'some-id-here'; 
$('#' + myVariable).addClass('some-class'); 

一切都很好,很正常,直到我關閉我的瀏覽器。我重新打開頁面後,jQuery的拋出此奇怪的錯誤:

Uncaught Syntax error, unrecognized expression: # 

我能夠用它來取代第二行和它的工作,但我很好奇,爲什麼第一部分沒有工作,我關閉後重新打開我的瀏覽器。

$(document.getElementById(myVariable)).addClass('current'); 
+0

myVariable失敗時的價值是什麼? – 2011-01-10 15:05:57

+0

你能重現嗎?你是否確定這是有問題的線路? 'myVariable`是否按照上面顯示的方式進行字面聲明? – 2011-01-10 15:06:27

+0

我敢肯定,你可能會得到這個錯誤的唯一原因是因爲變量評估爲空字符串,實際上導致你調用`$('#')` – 2011-01-10 15:16:32

回答

1

聽起來好像你在定義myVariable時,有一個#和id的開頭。 $(document.getElementById(myVariable)).addClass('current');

我: - 這也將導致你使用的是這是你的選擇,當得到確切的錯誤

$('##some-id-here').addClass('some-class'); 

如果是這樣的問題,它爲什麼會用這個代替不工作解釋不知道爲什麼關閉瀏覽器會影響這一切。也許你改變了你的html,這似乎只在你重新打開你的瀏覽器時才反映出來?

0

如果myVariable不爲空,即使具有該ID的元素不存在,該工作也不會出現問題。

1

$('#')拋出「未捕獲的語法錯誤,無法識別的表達式:#」在jQuery中。所以問題幾乎肯定是myVariable是空的。

0

你在其他地方使用代碼嗎?一些線下來?