Подсчет элементов в div`e
День добрый. Сразу к проблеме.
У меня есть div с определенный id. Мне необходимо подсчитать, сколько в нем содержится секций. Т.е. Код у меня примерно такой: <div id="block"> <section id="one">Содержимое</section> <section id="two">Содержимое</section> <section id="three">Содержимое</section> </div> Заранее благодарен |
Цитата:
<!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>
|
ksa, спасибо конечно, можно ведь это значение переменной присвоить?
Штука вот в чем. Мне необходимо одному из элементов присвоить высоту. Для этого необходимо взять значение высоты родительского контейнера (оно в 100%, а нужно получить в данный момент в px), вычесть из него высоту каждой секции * на число секций. Вот для этого я и хочу посчитать число секций. P.S. Ну как уже можно понять, в js я новичок. Только начал изучать. А скрипт нужен срочно. |
Цитата:
Цитата:
Цитата:
|
Цитата:
var n=document.getElementById('block').getElementsByTagName('section').length
|
Ага, спасибо всем. Посчитал необходимую мне величину.
Вот еще, надеюсь последний, вопрос: как теперь присвоить это значение в style элементу? Т.е. вот какая загвоздка. У меня вот такой стиль:
#accordion :target h2 + div
{
height: 310px;
}
Надо с помощью js в самом документе подставлять высчитанную величину Оо |
Цитата:
obj.style.height=n+'px' |
ksa, там структура html та же остается.
Эх. Смотрите: http://templ1.ucoz.ru/ (не сочтите за рекламу), там слева блок. Вот надо задавать каждой секции высоту в развернутом состоянии. Я не могу задать в css auto, т.к. тогда пропадает плавность =( Вот и пытаюсь через js. Мониторы-то у всех разные |
Цитата:
ИД элемента у тебя есть - осталось найти в нём h2 и рядом стоящий ДИВ - вот ему-то и менять стиль. |
ksa, ясно. А подскажите пожалуйста как? Вот поиск элемента:
document.getElementById('bloks').getElementsByTagName('section').getElementsByTagName('div')
Как поменять стиль? |
nDiviD, вот этот метод
getElementsByTagName() возвращает целую коллекцию элементов... Т.о. это Цитата:
|
Вот некий примерчик поиска...
<!DOCTYPE html>
<html>
<head>
<title>test</title>
<style type="text/css">
#b1:target,
#b2:target,
#b3:target {
border: 1px solid red;
}
</style>
<script type="text/javascript">
function Go() {
var val=document.getElementById('item').value
val=(val=='')? 'b1': val
top.location='#'+val
Find()
}
function Find() {
var ob=top.location.hash
if (ob=='') {
return
}
ob=ob.split('#')[1]
ob=document.getElementById(ob)
ob=ob.getElementsByTagName('h2')
var o
var i=0
while (ob[i]) {
o=ob[i].nextSibling
while (o.tagName!='DIV') {
o=o.nextSibling
}
o.style.border='1px solid green'
i++
}
}
</script>
</head>
<body>
<div id='b1'>
<h2>Заголовок 1</h2>
<div>Комментарий 1</div>
</div>
<div id='b2'>
<h2>Заголовок 2</h2>
<div>Комментарий 2</div>
</div>
<div id='b3'>
<h2>Заголовок 3</h2>
<div>Комментарий 3</div>
</div>
<input type='text' id='item' />
<input type='button' value='Go' onclick='Go()' />
</body>
</html>
|
ksa, ну так как мне сделать поиск и присвоить стиль?
|
nDiviD, свой пример я показал... А ты свой пример даже неудосуживаешся сделать. :)
Может пора бсудить гонорар за конкретную помощь? :D |
Цитата:
|
| Часовой пояс GMT +3, время: 17:22. |