jQuery:未捕获错误:语法错误,无法识别的表达式
jQuery: Uncaught Error: Syntax error, unrecognized expression
console.log($('"#'+d+'"'));
在我的HTML中,我有:
<div id="2013-10-23">
<h1>5</h1>
<p>eeeeeeeeeeee</p>
</div>
在上面的代码中,我有一个id
为 2013-10-23
的<div>
,当得到该id
时,它会抛出以下语法错误:
Uncaught Error: Syntax error, unrecognized expression: "#2013-10-23"
尝试
console.log($("#"+d));
您的解决方案是将双引号作为字符串的一部分传递。
不需要
"双引号"+"单引号"组合
console.log( $('#'+d) ); // single quotes only
console.log( $("#"+d) ); // double quotes only
你的选择器结果是这样的,这用引号是矫枉过正的:
$('"#abc"') // -> it'll try to find <div id='"#abc"'>
// In css, this would be the equivalent:
"#abc"{ /* Wrong */ } // instead of:
#abc{ /* Right */ }
如果您
尝试缺少 ] 的选择器,这也可能发生在 safari 中
,例如$('select[name="something"')
但有趣的是,这个缺少括号的 jQuery 选择器可以在 Chrome 中工作。
尝试使用:
console.log($("#"+d));
这将删除您使用的额外引号。
试试这个(ES5)
console.log($("#" + d));
ES6
console.log($(`#${d}`));
我不得不多看一点来解决我的问题,但解决它的方法是找到错误所在。这里展示了如何在Jquery的错误转储中做到这一点。
在我的情况下id
是空的,'$("#" + id); 产生错误。
这是我没有寻找的地方,因此这有助于查明问题所在,以便我可以进行故障排除和修复。
如果您使用的是 jQuery 2.1.4 或更高版本,请尝试以下操作:
$("#" + this.d);
或者,您可以在使用之前定义 var。它使您的代码更简单。
var d = this.d
$("#" + d);
对于某些来到这里的人来说,你的 id
属性中可能有一个特殊的字符,所以 jQuery 无法正确读取它。
ID 和 NAME 令牌必须以字母 ([A-Za-z]) 开头,并且可以是后跟任意数量的字母、数字 ([0-9])、连字符 ("-"),下划线 ("_")、冒号 (":") 和句点 (".")。
查看此答案以获取更多详细信息:HTML 中 id 属性的有效值是什么?
我有一个带空格的选择器('#test .test')。
我的错误示例:
var href = "javascript:scrollto('"+key+"')";
对我来说,这很有帮助:encodeURIComponent(value)
var href = "javascript:scrollto('"+encodeURIComponent(key)+"')";
相关文章:
- 错误:语法错误,无法识别的表达式:不支持的伪:无效/RectJS/Unit Testing
- 未捕获错误:语法错误,无法识别的表达式:input[@type=submit]
- jQuery选择器错误:无法识别的表达式
- Angular JS/Rube-on-Rails-控制器未识别错误
- jquery 1.8.0语法错误,无法识别的表达式:>
- Jslint 无法识别错误排序函数的选项
- 如何修复 jQuery 1.8“语法错误,无法识别的表达式”错误
- 错误:错误:语法错误,无法识别的表达式:
- 属性选择器不起作用(语法错误、无法识别的表达式)
- HTML 无法识别我要求它运行的 javascript 文件,语法错误:意外的令牌“<”(匿名函数)script.js:
- 如何识别AngularJS中的错误[cdep]
- jQuery:语法错误,无法识别的表达式:.Marketing&通讯
- 识别以下代码中的错误
- 未捕获错误:语法错误,无法识别的表达式:ajaxsample/update_agenda(CodeIgniter)
- Aptana插件用于eclipse错误识别和自动完成
- 无法识别错误回调
- 是否可以在函数构造函数中识别哪个对象调用它,并在错误的对象调用时中止创建
- Jquery语法错误,id选择器上的表达式无法识别
- 未捕获错误:语法错误,无法识别表达式Jquery选择器单引号与双引号
- Javascript:语法错误,无法识别的表达式: