Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Подсчет элементов в div`e (https://javascript.ru/forum/misc/18705-podschet-ehlementov-v-div%60e.html)

nDiviD 12.07.2011 16:33

Подсчет элементов в div`e
 
День добрый. Сразу к проблеме.
У меня есть div с определенный id.
Мне необходимо подсчитать, сколько в нем содержится секций.
Т.е. Код у меня примерно такой:
<div id="block">
<section id="one">Содержимое</section>
<section id="two">Содержимое</section>
<section id="three">Содержимое</section>
</div>


Заранее благодарен

ksa 12.07.2011 16:43

Цитата:

Сообщение от nDiviD
Мне необходимо подсчитать, сколько в нем содержится секций.

Ну косинус же!

<!DOCTYPE html>
<html>
<head>
<title>test</title>
<style type="text/css">
</style>
<script type="text/javascript">
function Go() {
	alert(document.getElementById('block').getElementsByTagName('section').length)
}
</script>
</head>
<body onload='Go()'>
<div id="block">
	<section id="one">Содержимое</section>
	<section id="two">Содержимое</section>
	<section id="three">Содержимое</section>
</div>
</body>
</html>

nDiviD 12.07.2011 17:03

ksa, спасибо конечно, можно ведь это значение переменной присвоить?
Штука вот в чем. Мне необходимо одному из элементов присвоить высоту. Для этого необходимо взять значение высоты родительского контейнера (оно в 100%, а нужно получить в данный момент в px), вычесть из него высоту каждой секции * на число секций. Вот для этого я и хочу посчитать число секций.

P.S. Ну как уже можно понять, в js я новичок. Только начал изучать. А скрипт нужен срочно.

walik 12.07.2011 19:01

Цитата:

Сообщение от nDiviD
Для этого необходимо взять значение высоты родительского контейнера (оно в 100%, а нужно получить в данный момент в px)

elem.clientHeight
Цитата:

Сообщение от nDiviD
вычесть из него высоту каждой секции * на число секций

циклом проходишь по всем элементам и вычитаешь.
Цитата:

Сообщение от nDiviD
А скрипт нужен срочно.

Тогда поторопись, времени у тебя осталось совсем мало :)

ksa 13.07.2011 09:01

Цитата:

Сообщение от nDiviD
можно ведь это значение переменной присвоить?

Разумеется. :)

var n=document.getElementById('block').getElementsByTagName('section').length

nDiviD 15.07.2011 08:52

Ага, спасибо всем. Посчитал необходимую мне величину.
Вот еще, надеюсь последний, вопрос: как теперь присвоить это значение в style элементу?
Т.е. вот какая загвоздка. У меня вот такой стиль:
#accordion :target h2 + div
{
 height: 310px;
}

Надо с помощью js в самом документе подставлять высчитанную величину Оо

ksa 15.07.2011 09:25

Цитата:

Сообщение от nDiviD
как теперь присвоить это значение в style элементу?

Таки найти этот элемент в ДОМ и

obj.style.height=n+'px'

nDiviD 15.07.2011 10:34

ksa, там структура html та же остается.
Эх. Смотрите: http://templ1.ucoz.ru/ (не сочтите за рекламу), там слева блок. Вот надо задавать каждой секции высоту в развернутом состоянии. Я не могу задать в css auto, т.к. тогда пропадает плавность =( Вот и пытаюсь через js. Мониторы-то у всех разные

ksa 15.07.2011 10:44

Цитата:

Сообщение от nDiviD
Смотрите

Что-то рассматривать лучше тут на тестовом примере...

ИД элемента у тебя есть - осталось найти в нём h2 и рядом стоящий ДИВ - вот ему-то и менять стиль.

nDiviD 15.07.2011 11:07

ksa, ясно. А подскажите пожалуйста как? Вот поиск элемента:
document.getElementById('bloks').getElementsByTagName('section').getElementsByTagName('div')

Как поменять стиль?


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