Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.07.2011, 16:33
Новичок на форуме
Отправить личное сообщение для nDiviD Посмотреть профиль Найти все сообщения от nDiviD
 
Регистрация: 12.07.2011
Сообщений: 7

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


Заранее благодарен
Ответить с цитированием
  #2 (permalink)  
Старый 12.07.2011, 16:43
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,232

Сообщение от 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>
Ответить с цитированием
  #3 (permalink)  
Старый 12.07.2011, 17:03
Новичок на форуме
Отправить личное сообщение для nDiviD Посмотреть профиль Найти все сообщения от nDiviD
 
Регистрация: 12.07.2011
Сообщений: 7

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

P.S. Ну как уже можно понять, в js я новичок. Только начал изучать. А скрипт нужен срочно.
Ответить с цитированием
  #4 (permalink)  
Старый 12.07.2011, 19:01
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

Сообщение от nDiviD
Для этого необходимо взять значение высоты родительского контейнера (оно в 100%, а нужно получить в данный момент в px)
elem.clientHeight
Сообщение от nDiviD
вычесть из него высоту каждой секции * на число секций
циклом проходишь по всем элементам и вычитаешь.
Сообщение от nDiviD
А скрипт нужен срочно.
Тогда поторопись, времени у тебя осталось совсем мало
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #5 (permalink)  
Старый 13.07.2011, 09:01
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,232

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

var n=document.getElementById('block').getElementsByTagName('section').length
Ответить с цитированием
  #6 (permalink)  
Старый 15.07.2011, 08:52
Новичок на форуме
Отправить личное сообщение для nDiviD Посмотреть профиль Найти все сообщения от nDiviD
 
Регистрация: 12.07.2011
Сообщений: 7

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

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

Последний раз редактировалось nDiviD, 15.07.2011 в 08:56.
Ответить с цитированием
  #7 (permalink)  
Старый 15.07.2011, 09:25
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,232

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

obj.style.height=n+'px'

Последний раз редактировалось ksa, 15.07.2011 в 09:27.
Ответить с цитированием
  #8 (permalink)  
Старый 15.07.2011, 10:34
Новичок на форуме
Отправить личное сообщение для nDiviD Посмотреть профиль Найти все сообщения от nDiviD
 
Регистрация: 12.07.2011
Сообщений: 7

ksa, там структура html та же остается.
Эх. Смотрите: http://templ1.ucoz.ru/ (не сочтите за рекламу), там слева блок. Вот надо задавать каждой секции высоту в развернутом состоянии. Я не могу задать в css auto, т.к. тогда пропадает плавность =( Вот и пытаюсь через js. Мониторы-то у всех разные
Ответить с цитированием
  #9 (permalink)  
Старый 15.07.2011, 10:44
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,232

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

ИД элемента у тебя есть - осталось найти в нём h2 и рядом стоящий ДИВ - вот ему-то и менять стиль.
Ответить с цитированием
  #10 (permalink)  
Старый 15.07.2011, 11:07
Новичок на форуме
Отправить личное сообщение для nDiviD Посмотреть профиль Найти все сообщения от nDiviD
 
Регистрация: 12.07.2011
Сообщений: 7

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

Как поменять стиль?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Суммирование значений всех элементов div frolvict jQuery 1 11.07.2011 17:05
Никак не могу достучаться до элементов DeeSoft jQuery 0 14.02.2011 20:05
Изменение множества элементов Input по определённом призна Лавсановые Волокна Элементы интерфейса 1 24.12.2010 10:37
Сделать список multiple select с сортировкой элементов Nargiza Элементы интерфейса 2 17.08.2010 14:44
Быстрый разбор списка элементов. B~Vladi Общие вопросы Javascript 31 14.07.2010 15:52