Ну ответьте же, пожалуйста, очень надо.
Что примечательно, в jQuery вызовом $(elem).height() всё работает. Там, где $(elem).height() возвращает правильную высоту, elem.clientHeight возвращает 0. Такая проверка сразу же после изменения elem.innerHTML, например:
console.log($(elem).height()+" "+elem.offsetHeight+" "+elem.clientHeight+" "+elem.scrollHeight);
// Пишет в консоль: правильнаяВысота 0 0 0
Смотрел $().height — там тоже используются (client|offset|scroll)Height, но большую часть каши из кода функции до конца переварить не удалось.