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

时间:2011-05-05 21:11:14

标签: jquery html jquery-selectors

我们网站中的某些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升级到最新版本,我相信这是原因。我在上述陈述中做了什么违法行为吗?感谢您的任何意见或帮助!

2 个答案:

答案 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');

请参阅this question