【发布时间】:2016-04-24 02:48:10
【问题描述】:
我将 jquery 从 2.14 升级到 2.2.0,但总是出现异常:
未捕获的错误:语法错误,无法识别的表达式: li[data-target^=#step]
代码:
var count = $('li[data-target^=#step]').length;
问题在于#step
如何逃脱?
【问题讨论】:
标签: jquery
我将 jquery 从 2.14 升级到 2.2.0,但总是出现异常:
未捕获的错误:语法错误,无法识别的表达式: li[data-target^=#step]
代码:
var count = $('li[data-target^=#step]').length;
问题在于#step
如何逃脱?
【问题讨论】:
标签: jquery
从 2.2.0 版开始,当属性值包含 # 字符时,您似乎需要在属性值周围添加引号(值得指出的是,当字符 # 被删除时它可以工作)。
var count = $('li[data-target^="#step"]').length;
请参阅发行说明下的these comments。显然这是一个错误修复。
在内部,jQuery 将尝试使用方法.querySelectorAll(),它会抛出一个错误,指出li[data-target^=#step]' 不是一个有效的选择器,(这就是你需要引号的原因):
未捕获的 SyntaxError:无法在
Document上执行querySelectorAll:li[data-target^=#step]不是有效的选择器。
【讨论】:
根据the docs,您应该使用单引号:
var count = $("li[data-target^='#step']").length;
【讨论】: