Необработанное исключение jQuery: синтаксическая ошибка, нераспознанное выражение [tabindex = "нечто"] - PullRequest
12 голосов
/ 06 мая 2011

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

jQuery необработанное исключение: синтаксическая ошибка, нераспознанное выражение [tabindex = "что-то"]

ЭТО МОЙ КОД:

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 ]

12 голосов
/ 06 мая 2011

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

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

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

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

2 голосов
/ 06 мая 2011

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...