Свойство length существует для массивов, но не для объектов. Например, в консоли firebug вы можете ввести:
var a={'a':'e','b':'c'};
a.length==undefined;//true
Тогда попробуйте это с массивом:
var a=['a', 'b','c','d'];
a.length;//4
В ответ на комментарии:
Вы должны быть в состоянии сделать
$.each
на пустом объекте без проблем. Вы можете держать счетчик, например,
var resultCount=0;
$.each(data, function(i, item){
resultCount++;
//...
});
if(resultCount == 0){
//error
return false;
}
При этом я не уверен, действительно ли это ваша проблема (но проверьте, потому что это вполне может быть). Вы пробовали alert
ing data
в IE? Иногда вам просто нужно постоянно перемещать оповещения, пока не найдете проблему.