Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   дочерние элементы (https://javascript.ru/forum/misc/6854-dochernie-ehlementy.html)

bobo123 27.12.2009 15:02

дочерние элементы
 
как посчитать количесто вхождений других div в главный div?
на примере, если можно

Riim 27.12.2009 15:21

document.getElementById('mainDiv').getElementsByTagName('div').length;

bobo123 27.12.2009 15:35

что я делаю не так, я хочу вывести их количество
вот код

<html>
<head>
<script language="javascript">

tt=document.getElementById('vopros').getElementsByTagName('div').length;		
</script>
</head>

<body>
<script>
document.write(tt);
</script>

<div id="vopros" style="visibility:hidden";>
  <div id="question1">
    <p>Сколько будет 2+2 ?</p>
    <input id=v101 name="Name" type="checkbox" value="5">5<br>
    <input id=v102 name="Name" type="checkbox" value="4">4<br>
    <input id=v103 name="Name" type="checkbox" value="7">7<br>
    <input id=v104 name="Name" type="checkbox" value="3">3
  </div>
  <div id="question2">
    <p>Сколько тебе лет ?</p>
    <input id=v201 name="Name" type="checkbox" value="15">15<br>
    <input id=v202 name="Name" type="checkbox" value="14">14<br>
    <input id=v203 name="Name" type="checkbox" value="17">17<br>
    <input id=v204 name="Name" type="checkbox" value="13">13
  </div>
  <div id="question3">
    <p>Сколько  будет 2*2 ?</p>
    <input id=v301 name="Name" type="checkbox" value="15">15<br>
    <input id=v302 name="Name" type="checkbox" value="4">4<br>
    <input id=v303 name="Name" type="checkbox" value="17">17<br>
    <input id=v304 name="Name" type="checkbox" value="13">13
  </div>
</div>
</body>
</html>

Riim 27.12.2009 15:42

window.onload

bobo123 27.12.2009 15:44

извините за назойливость, куда мне написать то, что вы мне дали

Riim 27.12.2009 15:46

в гугл.

bobo123 27.12.2009 15:53

сделал так, но выводит только 3, а надо чтобы все выводило
<html>
<head>
<script language="javascript">

 function show(question)
    {
      document.getElementById('questarea').innerHTML=document.getElementById(question).innerHTML;
    }
  function s()
    {
      var tt=document.getElementById('vopros').getElementsByTagName('div').length;
      document.write(tt);
   }
</script>
</head>

<body onload="s();">
<div id="vopros" style="visibility:hidden";>
  <div id="question1">
    <p>Сколько будет 2+2 ?</p>
    <input id=v101 name="Name" type="checkbox" value="5">5<br>
    <input id=v102 name="Name" type="checkbox" value="4">4<br>
    <input id=v103 name="Name" type="checkbox" value="7">7<br>
    <input id=v104 name="Name" type="checkbox" value="3">3
  </div>
  <div id="question2">
    <p>Сколько тебе лет ?</p>
    <input id=v201 name="Name" type="checkbox" value="15">15<br>
    <input id=v202 name="Name" type="checkbox" value="14">14<br>
    <input id=v203 name="Name" type="checkbox" value="17">17<br>
    <input id=v204 name="Name" type="checkbox" value="13">13
  </div>
  <div id="question3">
    <p>Сколько  будет 2*2 ?</p>
    <input id=v301 name="Name" type="checkbox" value="15">15<br>
    <input id=v302 name="Name" type="checkbox" value="4">4<br>
    <input id=v303 name="Name" type="checkbox" value="17">17<br>
    <input id=v304 name="Name" type="checkbox" value="13">13
  </div>
</div>	
</body>
</html>

Gvozd 27.12.2009 18:11

http://innerhtml.ru desu

bobo123 27.12.2009 20:41

есть код
<script>
  var tt=document.getElementById('vopros').getElementsByTagName('div');
  document.write('<div id="button" style="position: absolute; top: 20px; left: 120px; height:80%; width: 120px; overflow: scroll; overflow-x: hidden;">');
  for(var i=0; i<tt.length; i++)  
    {
      var j=i+1;
      document.write('<input type="button" value="Вопрос '+j+'" style="width:100" OnClick="show('+'tt['+i+'].id'+')"><br>');
    }
  document.write('</div>');
</script>

tt=3;
r- массив, в нем храняться значения question4, question7, question3
получается следующее

<div id="button" style="position: absolute; top: 20px; left: 120px; height:80%; width: 120px; overflow: scroll; overflow-x: hidden;">
	<input type="button" value="Вопрос 1" style='width:100' OnClick="show('question4')">
	<input type="button" value="Вопрос 2" style='width:100' OnClick="show('question7')">
	<input type="button" value="Вопрос 3" style='width:100' OnClick="show('question3')">
</div>

допустим я нажал по вопросу 1, вывело в div кое какой текст.
как теперь сделать, чтобы по нажатию на кнопку(созданную заранее), показывался следующий id=question7.

JsLoveR 03.02.2010 22:50

Я не понял тебе нужна 1 кнопка для отображения вопросов или для каждого вопроса отдельная? Если тебе надо одной кнопкой отображать вопросы по очереди, то вот:
Ты сможешь перебирать все твои вопросы по очереди, путем хранения твоих вопросов в массиве, метод shift() здесь оставит вопрос, который идёт по очереди, начиная с 0-го индекса, а остальные удалит, вызывая фун-ю words() - перебирается массив. Сделаешь проверку на последний элемент массива, надеюсь, что продумать всё остальное сможешь сам, это как пример:D

<script type="text/javascript">
var questions=new Array("Учи массивы, ","их методы,  ","а ткаже DOM ","и прийдёт ","к ","тебе ","вдохновение!!!!" ); 
var mass=[];
function words(){

mass=questions.shift(questions.length);
 document.getElementById("q").innerHTML="<b>"+mass+"</b>";
}
function returnMassive()
{
  questions=new Array("Учи массивы, ","их методы,  ","а ткаже DOM ","и прийдёт ","к ","тебе ","вдохновение!!!!" );
  document.getElementById("q").innerHTML="<i>"+'Запусти заново'+"</i>";
}
	</script>

<div id="q"></div>
<br/>
<a href="#" onclick="words()" style=" color:#0099FF; text-decoration:none"> Следующий </a>
<a href="#" onclick="returnMassive()" style=" color:#0099FF; text-decoration:none">| Вернуть массив </a>

Как пример можно сделать любой тест;) Лучше запускать через <body onload="words()"></body>
Таким способом можно сделать анимацию, когда слово за словом идет через setTimeout )))


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