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);