Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Закрыть все окна

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Display: none
aleks3130
Отправлено: 27 Февраля, 2013 - 09:25:44
Post Id


Гость


Покинул форум
Сообщений всего: 119
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)

[+]


<div class="okno" id="d1"></div>
<div class="okno" id="d2"></div>
<div class="okno" id="d3"></div>
итд

CSS
.okno{display: block}


Как сделать у всех окон display: none;

Окон может быть очень много.


Заранее спасибо
 
 Top
avtor.fox
Отправлено: 27 Февраля, 2013 - 09:28:13
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


Помог: 50 раз(а)




Однако
 
 Top
aleks3130
Отправлено: 27 Февраля, 2013 - 09:37:50
Post Id


Гость


Покинул форум
Сообщений всего: 119
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)

[+]


avtor.fox пишет: Однако



У меня сейчас реализовано так

document.getElementById('d1').style.display="none";
document.getElementById('d2').style.display="none";
document.getElementById('d3').style.display="none";



как сделать через класс CSS не знаю

подскажите
 
 Top
avtor.fox
Отправлено: 27 Февраля, 2013 - 09:40:44
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


Помог: 50 раз(а)




avtor.fox пишет: Однако

Однако
 
 Top
aleks3130
Отправлено: 27 Февраля, 2013 - 09:44:57
Post Id


Гость


Покинул форум
Сообщений всего: 119
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)

[+]


avtor.fox пишет:
avtor.fox пишет: Однако

Однако


Меня интересует как это сделать через javascript
 
 Top
avtor.fox
Отправлено: 27 Февраля, 2013 - 09:45:27
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


Помог: 50 раз(а)




CODE (javascript):
скопировать код в буфер обмена
  1. window.onload = function(){
  2.         var cl = 'new', // ClassName
  3.         a = document.getElementsByTagName('body')[0].getElementsByTagName('*')
  4.         for(var i=0;i<a.length;i++){
  5.                 if(a[i].className == cl){
  6.                         a[i].style.display = 'none'
  7.                 }
  8.         }
  9. }
 
 Top
DeepVarvar Супермодератор
Отправлено: 27 Февраля, 2013 - 10:06:36
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




avtor.fox пишет:
a[i].className == cl
Не прокатит для элементов, котоые содержать более одного класса (class="a b c"):
CODE (javascript):
скопировать код в буфер обмена
  1. function hasClass(elem, classname) {
  2.   return (!elem.className) ? false :
  3.     elem.className.match(new RegExp('(\\s|^)' + classname + '(\\s|$)'));
  4. }
 
 Top
avtor.fox
Отправлено: 27 Февраля, 2013 - 10:13:42
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


Помог: 50 раз(а)




DeepVarvar, я только учусь. Спасибо Закатив глазки
 
 Top
DeepVarvar Супермодератор
Отправлено: 27 Февраля, 2013 - 11:13:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




avtor.fox пишет:
только учусь
Тогда продолжим еще.
Для тех элементов, св-ва которых не требуется проверять через hasOwnProperty, вполне прокатит in-синтаксис в цикле:
CODE (javascript):
скопировать код в буфер обмена
  1. function hasClass(elem, classname) {
  2.   return (!elem.className) ? false :
  3.     elem.className.match(new RegExp('(\\s|^)' + classname + '(\\s|$)'));
  4. }
  5. window.onload = function(){
  6.   var cl = 'new', // ClassName
  7.   a = document.getElementsByTagName('body')[0].getElementsByTagName('*');
  8.   for(var i in a){
  9.     if(hasClass(a[i],  cl)){
  10.       a[i].style.display = 'none';
  11.     }
  12.   }
  13. }


И еще - всегда ставьте точку с запятой в конце "предложения", бывает так, что синтаксис становится неявным даже для js-движка.
 
 Top
avtor.fox
Отправлено: 27 Февраля, 2013 - 11:47:34
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


Помог: 50 раз(а)




DeepVarvar пишет:
for(var i in a)

Ага, пробег по элементам объекта. Не знал что синтаксис for позволяет такое.

DeepVarvar пишет:
И еще - всегда ставьте точку с запятой в конце "предложения", бывает так, что синтаксис становится неявным даже для js-движка.

Всегда нравилось "наплевательское" отношение js к закрытию строк. Спасибо.

Я позабыл что элемент может содержать в себе более одного класса и при обращении к нему (атрибуту) он возвращает строку. Промазал я)
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB