JQUERY:未捕获错误:语法错误,无法识别的表达式

console.log($('"#'+d+'"')); 

在html我有

 

5

eeeeeeeeeeee

它抛出错误:

未捕获错误:语法错误,无法识别的表达式:“#2013-10-23”

在上面的代码中,我有一个id="2013-10-23" div,当得到该id作为响应时,它会抛出语法错误

尝试

 console.log($("#"+d)); 

您的解决方案是将双引号作为字符串的一部分传递。

不需要“双引号”+“单引号”组合

 console.log( $('#'+d) ); // single quotes only console.log( $("#"+d) ); // double quotes only 

您的选择器结果如下,这对引号来说太过分了:

 $('"#abc"') // -> it'll try to find 
// In css, this would be the equivalent: "#abc"{ /* Wrong */ } // instead of: #abc{ /* Right */ }

尝试使用:

 console.log($("#"+d)); 

这将删除您使用的额外报价。

例如,如果您尝试使用缺少的选择器,这也可能在safari中发生

 $('select[name="something"') 

但有趣的是,这个带有缺少括号的jquery选择器将在chrome中工作。

试试这个(ES5)

 console.log($("#" + d)); 

ES6

 console.log($(`#${d}`)); 

如果您使用的是jQuery 2.1.4或更高版本,请尝试以下操作:

 $("#" + this.d); 

或者,您可以在使用之前定义var。 它使您的代码更简单。

 var d = this.d $("#" + d);