jQuery 未捕获异常:语法错误,无法识别的表达式 [ tabindex=“something”]

发布于 2024-11-05 12:07:42 字数 553 浏览 0 评论 0原文

突然间,我们网站中的一些 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

贪了杯 2024-11-12 12:07:42

thumb_src 中的任何 ./ 字符很可能会破坏最后三行中的属性选择器,因为它们是特殊的 CSS 字符。

双引号,以便按字面意思理解它们(即使您实际上不应该使用除 tabindex 之外的数字值之外的任何内容):

jQuery('a[tabindex="' + thumb_src + '"]')

尝试在这些选择器中使用 jquery.com/attribute-equals-selector" rel="noreferrer">API 文档 说这些引号在 jQuery 属性选择器中是强制性的。

Most likely any . or / characters in your thumb_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):

jQuery('a[tabindex="' + thumb_src + '"]')

The API docs say that these quotes are mandatory in jQuery attribute selectors anyway.

未央 2024-11-12 12:07:42

attr() 函数已更改 jQuery 1.6,使用prop() 改为:

var thumb_src = jQuery('a[name="thumb-image"] img[src*=' + sku + ']').prop('src');

参见 这个问题

The attr() function was changed as of jQuery 1.6, use prop() instead:

var thumb_src = jQuery('a[name="thumb-image"] img[src*=' + sku + ']').prop('src');

See this question

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文