jQuery 未捕获异常:语法错误,无法识别的表达式 [ tabindex=“something”]
突然间,我们网站中的一些 UI 功能无法正常工作,我收到错误消息:
jQuery 未捕获异常:语法错误,无法识别的表达式 [ tabindex="something"]
这是我的代码:
var thumb_src = jQuery('a[name="thumb-image"] img[src*=' + sku + ']').attr('src');
jQuery( 'a[ tabindex=' + thumb_src + ']' ).prevAll().removeClass('selectedThumb');
jQuery( 'a[ tabindex=' + thumb_src + ']' ).addClass( 'selectedThumb' );
jQuery( 'a[ tabindex=' + thumb_src + ']' ).nextAll().removeClass('selectedThumb');
它工作正常,直到 jQuery 升级到最新版本,我相信这就是原因。我在上述言论中是否做了违法的事情?感谢您对此的任何意见或帮助!
All of a sudden some UI functionlities in our site are not working and I'm getting the error message:
jQuery uncaught exception: syntax error, unrecognized expression [ tabindex="something"]
THIS IS MY CODE:
var thumb_src = jQuery('a[name="thumb-image"] img[src*=' + sku + ']').attr('src');
jQuery( 'a[ tabindex=' + thumb_src + ']' ).prevAll().removeClass('selectedThumb');
jQuery( 'a[ tabindex=' + thumb_src + ']' ).addClass( 'selectedThumb' );
jQuery( 'a[ tabindex=' + thumb_src + ']' ).nextAll().removeClass('selectedThumb');
It was working fine until jQuery was upgraded to the latest and I believe that is the cause. Am I doing something illegal in the statements above? Thanks for any input or help on this!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
thumb_src
中的任何.
或/
字符很可能会破坏最后三行中的属性选择器,因为它们是特殊的 CSS 字符。双引号,以便按字面意思理解它们(即使您实际上不应该使用除
tabindex
之外的数字值之外的任何内容):尝试在这些选择器中使用 jquery.com/attribute-equals-selector" rel="noreferrer">API 文档 说这些引号在 jQuery 属性选择器中是强制性的。
Most likely any
.
or/
characters in yourthumb_src
are breaking the attribute selectors in your last three lines as they are special CSS characters.Try the double quotes inside those selectors so they're taken literally (even though you really shouldn't be using anything but numeric values for
tabindex
):The API docs say that these quotes are mandatory in jQuery attribute selectors anyway.
attr()
函数已更改 jQuery 1.6,使用prop()
改为:参见 这个问题
The
attr()
function was changed as of jQuery 1.6, useprop()
instead:See this question