Вам необходимо кэшировать ваши селекторы:
var tableDiv = $('#table_div'),
divHeader = $('#divHeader'),
firstcol = $('#firstcol'),
tableFirstCol = $('.tableFirstCol'),
tds = $('td', tableDiv);
Вы можете использовать для своих селекторов столбцов .eq (n).
Не используйте $(this).css("height", n)
при this.style.height = n
; проще и быстрее.
Это:
$('.tableHeader').each(function(i){
if(m<colCount){
/* ... */
}
m++;
});
должно быть:
$('.tableHeader').each(function(i){
if(i<colCount){
/* ... */
}
});
и я не совсем уверен, что вам даже понадобится проверка i<colCount
(но я бы посмотрел HTML).
Навигация в браузере, вероятно, не нужна. Попробуйте применить таблицу стилей сброса и действительный doctype
или используйте HTML5Boilerplate .
Если у вас есть браузер снифф: вы можете просто использовать:
if($.browser.mozilla){
/* ... */
}
else if ($.browser.msie){
/* ... */
}
else{
/* ... */
}
Вы также можете сжать этот код довольно много. Посмотрите на принцип DRY .
Кроме того, что касается установки высоты tableFirstCol
, не могли бы вы просто установить высоту строки вместо этого?