Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Опредилить высоту таблицы (https://javascript.ru/forum/misc/3183-opredilit-vysotu-tablicy.html)

konstantinopol 25.03.2009 15:54

Опредилить высоту таблицы
 
Как определить высоту таблицы созданой в JS в определённом <div id="tablica">
document.getElementById('tablica').height - не подходит.

Очень надо.

Gvozd 25.03.2009 16:05

искать нужно уссерднее
Измерения окна, документа и элементов

Kolyaj 25.03.2009 16:06

document.getElementById('tablica').offsetHeight

konstantinopol 25.03.2009 16:21

При document.getElementById('tablica').offsetHeight
Хм, alert возвращает ноль. Я посмотрел код с FireBud и он показал что teblica не имеет значения hight. Возможно поэтому я и получаю ноль. Но если есть таблица значит где-то должны быть и её данные??

Gvozd 25.03.2009 16:25

неужели это заметил только я?
вы сейчас у чего пытаетесь выяснить высоту?
явно не у таблицы. а у содержащего ее дива(да, бывает такое что див меньше, чем содержащиеся в нем элементы)
document.getElementById('tablica').getElementsByTagName('table')[0].offsetHeight

konstantinopol 25.03.2009 16:52

Вложений: 1
У меня посложнее будет ситуация.
Сверху можно увидить что стоит в div="tablica" но в нём оказывается не таблица а полныв полно других дивов. А команда
document.getElementById('tablica').getElementsByTagName('table')[0].offsetHeight

выдаёт ошибку . Как получить полный размер дива?

Gvozd 25.03.2009 17:00

в зависимости от того, как вы используете CSS ваш див может быть размеом меньше, чем элементы содержащиеся в нем.
попробуйте например посчитать сумму всех дочерних элементов.
если не получится, приложите в атаче образец вашей странички для теста.
потому что телепатически можно долго гадать, что у вас там происходит.

konstantinopol 25.03.2009 17:09

Вы мне предлогаете пощитать "на пальцах" или с помощью программы(функции)?
Таблица каждый раз разных размеров поэтому "на пальцах" щитать бесполезно. А как пощитать дочерние элементоы понятия не имею.

Gvozd 25.03.2009 17:18

почитайте раздел статей, где говорится про DOM
а вот так примерно будет выглядеть "посчитать"
elem=document.getElementById('tablica')
_offsetHeight=0;
children=elem.childNodes
for(i=0,s=children.length;i<s;i++)
{
if(children[i].nodeType==1)//только потомки-теги.без чисто текстовых нод
{
_offsetHeight+=children[i].offsetHeight;//суммируем
}
}
alert(_offsetHeight);

извините что без ворматирования.набирал прямо тут
только может не сработать, если потомки страдают той же "болезнью", что и родитель, то есть имеют меньший размер, чем содержимое.
все зависит от вашего CSS.
но, в принципе описанное действие можно проводить рекурсивно.
кжется так и делают в jQuery

Kolyaj 25.03.2009 17:21

Gvozd,
издеваешься чтоли? Это вообще не будет работать в большинстве случаев.


Часовой пояс GMT +3, время: 23:13.