Почему бы вам не добавить дефис перед выполнением разбиения? Вы все равно получаете первый элемент. Какая разница, если это первый из двух или первый из трех элементов?
var time_of_year = $ ((this) .attr ("id") + '- x'). Split ('-') [0];
Таким образом, вы берете предмет слева от первого дефиса, и всегда будет первый дефис:
"Апрель-23-х"
"Весна-х"
(Обратите внимание, я не проверял это и не ставлю свою жизнь на синтаксис! Но, возможно, это будет свежей идеей для вас.)
Редактировать: Кстати, я думаю, что пример в Исходном сообщении будет работать в любом случае. Split должен вернуть список длиной 1, и вы захватываете [0] -ый элемент, что идеально.