我们网站中的某些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升级到最新版本,我相信这是原因。我在上述陈述中做了什么违法行为吗?感谢您的任何意见或帮助!
答案 0 :(得分:12)
.
中的任何/
或thumb_src
字符很可能会破坏最后三行中的属性选择器,因为它们是特殊的CSS字符。
尝试使用这些选择器中的双引号,这样它们就可以直接使用(即使你真的不应该使用除tabindex
的数值之外的任何东西):
jQuery('a[tabindex="' + thumb_src + '"]')
API docs表示这些引号无论如何都是jQuery属性选择器中必需的。
答案 1 :(得分:2)
自attr()
起更改jQuery 1.6功能,改为使用 prop()
:
var thumb_src = jQuery('a[name="thumb-image"] img[src*=' + sku + ']').prop('src');