奇怪的jQuery错误

时间:2011-01-10 15:01:36

标签: jquery

我一直在关注我的jQuery业务,突然间,我试图这样做:

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

在我关闭浏览器之前,一切都很顺利。在我重新打开页面后,jQuery抛出了这个奇怪的错误:

Uncaught Syntax error, unrecognized expression: #

我能够用这个替换第二行并使其正常工作,但我很好奇为什么在我关闭并重新打开浏览器之后第一部分无效。

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

4 个答案:

答案 0 :(得分:1)

$('#')在jQuery中抛出“未捕获的语法错误,无法识别的表达式:#”。所以问题几乎可以肯定myVariable是空的。

答案 1 :(得分:1)

听起来好像在定义myVariable时,有一个#和id的开头。当您将其用作选择器时,这也会导致您获得的确切错误 -

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

如果这是问题所在,它可以解释为什么使用它会起作用:$(document.getElementById(myVariable)).addClass('current');

我不确定为什么关闭浏览器会对此产生影响。也许您对html进行了更改,似乎只有在您重新打开浏览器时才会反映出来?

答案 2 :(得分:0)

如果myVariable不为空,即使具有该ID的元素不存在,也应该没有问题。

答案 3 :(得分:0)

您是否在其他地方使用该代码?有些线路下来?