Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   getElementsByClassName (https://javascript.ru/forum/events/8731-getelementsbyclassname.html)

B~Vladi 10.04.2010 23:37

В 8 IE можно использовать querySelectorAlll. Функцию нужно переписывать.

denisok82 11.04.2010 18:00

Так как же сделать обновление перед выбором другой функции?

Kolyaj 11.04.2010 20:24

Ваш вопрос на форуме по C++ звучал бы примерно так: "Как перезапустить программу перед выбором другой функции?". Нелепость понятна?

denisok82 11.04.2010 21:13

Kolyaj,
Не нужно цепляться к неверно сформулированному вопросу. Ведь суть вопроса понятна.

Kolyaj 11.04.2010 21:21

Нет, не понятна.

denisok82 11.04.2010 21:24

Kolyaj,
а вы код из первого поста в нотпад скопируйте, сразу будет всё наглядно видно, если хотите помочь, а не позлословить.

denisok82 11.04.2010 21:31

Ладно, в итоге получилось привинтить визибилити, но код очень громоздкий, можно ли его как-нибудь укомпактить?
<script type="text/javascript">
 function find_c1() {
   var f1 = document.getElementById('layer').getElementsByClassName('c1')
     for (var i=0; i<f1.length; i++)
	     f1[i].style.visibility = "hidden";
		 
	 var f2 = document.getElementById('layer').getElementsByClassName('c2')
      for (var i=0; i<f2.length; i++)
	     f2[i].style.visibility = "visible";
	 
	 var f3 = document.getElementById('layer').getElementsByClassName('c3')
      for (var i=0; i<f3.length; i++)
	     f3[i].style.visibility = "visible";
	 
	 var f4 = document.getElementById('layer').getElementsByClassName('c4')
      for (var i=0; i<f4.length; i++)
	     f4[i].style.visibility = "visible";
 }
  function find_c2() {
   var f1 = document.getElementById('layer').getElementsByClassName('c1')
     for (var i=0; i<f1.length; i++)
	     f1[i].style.visibility = "visible";
		 
	 var f2 = document.getElementById('layer').getElementsByClassName('c2')
      for (var i=0; i<f2.length; i++)
	     f2[i].style.visibility = "hidden";
	 
	 var f3 = document.getElementById('layer').getElementsByClassName('c3')
      for (var i=0; i<f3.length; i++)
	     f3[i].style.visibility = "visible";
	 
	 var f4 = document.getElementById('layer').getElementsByClassName('c4')
      for (var i=0; i<f4.length; i++)
	     f4[i].style.visibility = "visible";
 }
  function find_c3() {
   var f1 = document.getElementById('layer').getElementsByClassName('c1')
     for (var i=0; i<f1.length; i++)
	     f1[i].style.visibility = "visible";
		 
	 var f2 = document.getElementById('layer').getElementsByClassName('c2')
      for (var i=0; i<f2.length; i++)
	     f2[i].style.visibility = "visible";
	 
	 var f3 = document.getElementById('layer').getElementsByClassName('c3')
      for (var i=0; i<f3.length; i++)
	     f3[i].style.visibility = "hidden";
	 
	 var f4 = document.getElementById('layer').getElementsByClassName('c4')
      for (var i=0; i<f4.length; i++)
	     f4[i].style.visibility = "visible";
 }
  function find_c4() {
   var f1 = document.getElementById('layer').getElementsByClassName('c1')
     for (var i=0; i<f1.length; i++)
	     f1[i].style.visibility = "visible";
		 
	 var f2 = document.getElementById('layer').getElementsByClassName('c2')
      for (var i=0; i<f2.length; i++)
	     f2[i].style.visibility = "visible";
	 
	 var f3 = document.getElementById('layer').getElementsByClassName('c3')
      for (var i=0; i<f3.length; i++)
	     f3[i].style.visibility = "visible";
	 
	 var f4 = document.getElementById('layer').getElementsByClassName('c4')
      for (var i=0; i<f4.length; i++)
	     f4[i].style.visibility = "hidden";
 }
</script>

Gozar 11.04.2010 21:44

denisok82,
Ч, ч, ч, чё это?!:blink:
этот код не можно, а нужно "укомпактить".

denisok82 11.04.2010 21:48

Gozar,
Ну главное - работает!
Подскажите - как ужать код.
Попытался вынести в глобальные переменные, почему-то не работает.
<script type="text/javascript">
   var f1 = document.getElementById('layer').getElementsByClassName('c1');
   var f2 = document.getElementById('layer').getElementsByClassName('c2');
   var f3 = document.getElementById('layer').getElementsByClassName('c3');
   var f4 = document.getElementById('layer').getElementsByClassName('c4');
 function find_c1() {
   for (var i=0; i<f1.length; i++)
	     f1[i].style.visibility = "hidden";
   for (var i=0; i<f2.length; i++)
	     f2[i].style.visibility = "visible";
   for (var i=0; i<f3.length; i++)
	     f3[i].style.visibility = "visible";
   for (var i=0; i<f4.length; i++)
	     f4[i].style.visibility = "visible";
   }
</script>

Gozar 11.04.2010 21:49

denisok82,
Вы когда-нибудь слышали или читали о том, что в функцию могут передаваться аргументы?
например:
function find(hidden_id){}


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