我一直在关注我的jQuery业务,突然间,我试图这样做:
var myVariable = 'some-id-here';
$('#' + myVariable).addClass('some-class');
在我关闭浏览器之前,一切都很顺利。在我重新打开页面后,jQuery抛出了这个奇怪的错误:
Uncaught Syntax error, unrecognized expression: #
我能够用这个替换第二行并使其正常工作,但我很好奇为什么在我关闭并重新打开浏览器之后第一部分无效。
$(document.getElementById(myVariable)).addClass('current');
答案 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)
您是否在其他地方使用该代码?有些线路下来?