Подтвердить что ты не робот

JQuery uncaught exception: синтаксическая ошибка, непризнанное выражение [tabindex = "something" ]

Неожиданно некоторые функции пользовательского интерфейса на нашем сайте не работают, и я получаю сообщение об ошибке:

Неактивное исключение 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 не был обновлен до последней версии, и я считаю, что это причина. Я делаю что-то незаконное в приведенных выше высказываниях? Спасибо за любой вклад или помощь в этом!

4b9b3361

Ответ 1

Скорее всего, любые символы . или / в вашем thumb_src разбивают селектора атрибутов в ваших последних трех строках, поскольку они являются специальными символами CSS.

Попробуйте двойные кавычки внутри этих селекторов, чтобы они были взяты буквально (хотя вы действительно не должны использовать ничего, кроме числовых значений для tabindex):

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

API docs говорят, что эти кавычки являются обязательными в селекторах атрибутов jQuery в любом случае.

Ответ 2

Функция attr() была изменена как jQuery 1.6, используйте prop():

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

См. этот вопрос