Есть еще одна причина, которая еще не обнаружена. Попробуйте отладить с помощью:
alert ( $('.my-class-name').length );
var mylen = $('.my-class-name').length;
alert(mylen);
var mynewLen = $('.my-class-name').size();
alert(mynewLen);
.size()
- это псевдоним jQuery для .length
Какая версия jQuery? Что еще есть на странице?
ПРИМЕЧАНИЕ: ЕСЛИ это на динамически создаваемых элементах, это нужно будет запускать ПОСЛЕ того, как элементы находятся в DOM.
РЕДАКТИРОВАТЬ: Примечание, чтобы попробовать это
$('div.my-class-name').length;
Примечание: селекторы классов в некоторых версиях jQuery не будут работать должным образом в некоторых контекстах - например, когда элементы VML находятся на странице (см. Ошибку jQuery # 7071). Я полностью стреляю в темноте, хотя здесь. Обходной путь: удалите .live () на странице, обновите до jQuery версии 1.6.1+ и используйте .delegate () вместо .live ();