У вас просто небольшая проблема с вашим селектором.
class$="TrainingActive"
На самом деле должно быть:
class*="TrainingActive"
Результирующий код:
console.log($('span[class*="TrainingActive"].selected-for').length);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<span id="student" class="studentTrainingActive selected-for">Foo bar</span>
Выходы на консоли:
1
Зачем использовать * = а не $ =
Как подсказывает @Andreas, причина того, что $=
как селектор не работает, заключается в том, что class
не заканчивается TrainingActive
. Посмотрите на атрибут class
:
studentTrainingActive selected-for
Он заканчивается на selected-for
.
Использование вместо содержит (*=
) удачно соответствует классу по мере необходимости и, конечно, может бытьв сочетании с .selected-for
как вам нужно.