Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 11.04.2010, 21:53
Аспирант
Отправить личное сообщение для denisok82 Посмотреть профиль Найти все сообщения от denisok82
 
Регистрация: 10.04.2010
Сообщений: 34

Gozar,
нет, еще не слышал. я же только учусь.
Точнее слышал, но не пробовал еще использовать.
Ответить с цитированием
  #22 (permalink)  
Старый 11.04.2010, 22:18
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

<html>
<head>

<script type="text/javascript">
 function find(hidden_id) {
   var f = document.getElementById('layer').childNodes;
     for (var i=0; i<f.length; i++){
	    if(f[i].className == hidden_id){
               f[i].style.visibility = "hidden";
            }
            else{
               f[i].style.visibility = "visible";
            }
     }
}
</script>

</head>
<body>
  <input id="but1" type="button" value="Убрать 1" onclick="find('c1')" />
  <input id="but2" type="button" value="Убрать 2" onclick="find('c2')" />
  <input id="but3" type="button" value="Убрать 3" onclick="find('c3')" />
  <input id="but4" type="button" value="Убрать 4" onclick="find('c4')" />
  
<div id="layer" style="padding-top: 20px; padding-left: 40px;"><p class="c1">100</p><p class="c2">110</p><p class="c3">120</p><p class="c4">130</p><p class="c1">140</p><p class="c2">150</p><p class="c3">160</p><p class="c4">170</p></div>

</body>
</html>


Мне честно говоря очень лень разбираться, но если я правильно понял что должно делаться, то так это делать намного проще. Этот способ будет работать только если между </p><p class= не будет пробелов или других символов иначе childNodes (f[i]) нужно проверять на <p>

Последний раз редактировалось Gozar, 11.04.2010 в 22:22. Причина: в
Ответить с цитированием
  #23 (permalink)  
Старый 11.04.2010, 22:21
Аспирант
Отправить личное сообщение для denisok82 Посмотреть профиль Найти все сообщения от denisok82
 
Регистрация: 10.04.2010
Сообщений: 34

Gozar,
Да, вы всё правильно поняли. Спасибо большое за помощь!
Ответить с цитированием
  #24 (permalink)  
Старый 11.04.2010, 22:26
Аспирант
Отправить личное сообщение для denisok82 Посмотреть профиль Найти все сообщения от denisok82
 
Регистрация: 10.04.2010
Сообщений: 34

Сообщение от Gozar Посмотреть сообщение
Этот способ будет работать только если между </p><p class= не будет пробелов или других символов иначе childNodes (f[i]) нужно проверять на <p>
А вот это уже неприятность.
Будем искать.
Ответить с цитированием
  #25 (permalink)  
Старый 11.04.2010, 22:51
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от denisok82 Посмотреть сообщение
А вот это уже неприятность.
Будем искать.
Это не неприятность, нужно просто проверять если перебираемый элемент p то сравнивать className, если нет то просто перебираем дальше. В общем изучайте методы работы с DOM.
Ответить с цитированием
  #26 (permalink)  
Старый 11.04.2010, 22:52
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от Gozar
методы работы с DOM
Ответить с цитированием
  #27 (permalink)  
Старый 11.04.2010, 22:53
Аспирант
Отправить личное сообщение для denisok82 Посмотреть профиль Найти все сообщения от denisok82
 
Регистрация: 10.04.2010
Сообщений: 34

Gozar,
B~Vladi,
Спасибо Буду постигать.
Ответить с цитированием
  #28 (permalink)  
Старый 14.04.2010, 22:42
Аспирант
Отправить личное сообщение для denisok82 Посмотреть профиль Найти все сообщения от denisok82
 
Регистрация: 10.04.2010
Сообщений: 34

Подскажите пожалуйста, как сделать, чтобы оба свойства изменялись, а не только одно первое?
for (var i=0; i<f1.length; i++)
	     f1[i].style.fontWeight = "bolder";
		 f1[i].style.color = "#ff0000";

Получается только вводя цикл со второй переменной. А сразу как-то можно оба свойства изменить?
Ответить с цитированием
  #29 (permalink)  
Старый 14.04.2010, 23:06
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Фигурные скобки забыли.
Ответить с цитированием
  #30 (permalink)  
Старый 14.04.2010, 23:10
Аспирант
Отправить личное сообщение для denisok82 Посмотреть профиль Найти все сообщения от denisok82
 
Регистрация: 10.04.2010
Сообщений: 34

спасибо

И я всё еще не понял, можно ли создавать такие глобальные переменные или нет?
<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>

Последний раз редактировалось denisok82, 14.04.2010 в 23:12.
Ответить с цитированием
Ответ



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

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