Одной из возможных проблем является то, что вы используете символы, которые строго не разрешены в идентификаторах. Хотя он может работать в некоторых браузерах, вы не можете рассчитывать на него, особенно в браузере, который так же стар, как IE7.
В качестве эксперимента, возможно, вы можете попытаться изменить эти идентификаторы, заменив скобки и запятые на подчеркивания и дефисы.
Если вы используете идентификатор для хранения данных, гораздо лучше использовать функцию data()
. При генерации HTML сохраняйте диапазоны дат следующим образом:
<li data-daterange="2006,2007,2008,2009">Something</li>
Затем создайте функцию для применения вашей логики стиля следующим образом:
var highlightYear = function (year) {
$('#your_ul').find('li').filter( function(){
return $.inArray( year, $(this).data('daterange').split(',') ) > -1;
}).addClass('sel');
};
Тогда используйте:
highlightYear( 2006 );
// adds "sel" class to all LI elements with "2006" in "daterange"
Ссылки: W3C HTML Спецификация на имя и идентификационные токены .