Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.03.2014, 19:45
Интересующийся
Отправить личное сообщение для FaustL Посмотреть профиль Найти все сообщения от FaustL
 
Регистрация: 02.02.2014
Сообщений: 10

Открыть/закрыть для всех блоков с одинаковым ID
Как сделать так, чтобы этот код заработал на всех ID?
#storyimg{display: none;}
<a class="yr" onclick="document.getElementById('storyimg').style.display=document.getElementById('storyimg').style.display=='block'?'none':'block';return(false)">Показать картинки</a>
<div id="storyimg">
  <img src="...">
</div>
<div id="storyimg">
  <img src="...">
</div>
<div id="storyimg">
  <img src="...">
</div>

Суть такая, на сайте есть статья с картинками, но иногда картинки просто мешают, хочется один текст. Для этого и использовал код выше. Он изначально скрывает картинку, которая находятся в div'е с id storyimg. А мне нужно чтобы он скрывал все имеющиеся дивы с id storyimg.
Ответить с цитированием
  #2 (permalink)  
Старый 04.03.2014, 19:47
Аватар для animhotep
Профессор
Отправить личное сообщение для animhotep Посмотреть профиль Найти все сообщения от animhotep
 
Регистрация: 17.01.2013
Сообщений: 887

дивов с id не может быть больше одного на странице, вместо id используй class
Ответить с цитированием
  #3 (permalink)  
Старый 04.03.2014, 19:56
Интересующийся
Отправить личное сообщение для FaustL Посмотреть профиль Найти все сообщения от FaustL
 
Регистрация: 02.02.2014
Сообщений: 10

Сообщение от animhotep Посмотреть сообщение
дивов с id не может быть больше одного на странице, вместо id используй class
В итоге данный код перестаёт работать. Я заменил на:
.storyimg{display: none;}
<a class="yr" onclick="document.getElementById('.storyimg').style.display=document.getElementById('.storyimg').style.display=='block'?'none':'block';return(false)">Показать картинки</a>
<div class="storyimg">
  <img src="...">
</div>
<div class="storyimg">
  <img src="...">
</div>
<div class="storyimg">
  <img src="...">
</div>

Подозреваю, что getElementById надо заменить на что-то другое?
Ответить с цитированием
  #4 (permalink)  
Старый 04.03.2014, 19:58
Аватар для animhotep
Профессор
Отправить личное сообщение для animhotep Посмотреть профиль Найти все сообщения от animhotep
 
Регистрация: 17.01.2013
Сообщений: 887

именно, на getelementsbyclassname
Ответить с цитированием
  #5 (permalink)  
Старый 04.03.2014, 20:06
Интересующийся
Отправить личное сообщение для FaustL Посмотреть профиль Найти все сообщения от FaustL
 
Регистрация: 02.02.2014
Сообщений: 10

Сообщение от animhotep Посмотреть сообщение
именно, на getelementsbyclassname
Не работает(
изменял на getElementsByClassName, так пробовал как ".storyimg", так "storyimg"
Ответить с цитированием
  #6 (permalink)  
Старый 04.03.2014, 21:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

FaustL,
циклом по всему массиву getElementsByClassName
Ответить с цитированием
  #7 (permalink)  
Старый 04.03.2014, 21:18
Интересующийся
Отправить личное сообщение для FaustL Посмотреть профиль Найти все сообщения от FaustL
 
Регистрация: 02.02.2014
Сообщений: 10

Сообщение от рони Посмотреть сообщение
FaustL,
циклом по всему массиву getElementsByClassName
Вот так у меня:
.storyimg{display: none;}
<a class="yr" onclick="document.getElementsByClassName('.storyimg').style.display=document.getElementsByClassName('.storyimg').style.display=='block'?'none':'block';return(false)">Показать картинки</a>
<div class="storyimg">
  <img src="...">
</div>
<div class="storyimg">
  <img src="...">
</div>
<div class="storyimg">
  <img src="...">
</div>


Где неправильно подскажите пожалуйста
Ответить с цитированием
  #8 (permalink)  
Старый 04.03.2014, 21:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

FaustL,
создайте функцию и обработайте массив - нет у массива style
Ответить с цитированием
  #9 (permalink)  
Старый 04.03.2014, 21:33
Интересующийся
Отправить личное сообщение для FaustL Посмотреть профиль Найти все сообщения от FaustL
 
Регистрация: 02.02.2014
Сообщений: 10

Сообщение от рони Посмотреть сообщение
FaustL,
создайте функцию и обработайте массив - нет у массива style
Прошу помогите в этом вопросе, я не силён в js.
Ответить с цитированием
  #10 (permalink)  
Старый 04.03.2014, 21:42
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

FaustL,

<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  .storyimg{display: none;}
  </style>
  <script>
      var show;
     function toggle(cls)
     {
       show = !show
       var divs = document.getElementsByClassName(cls);
       for (var i=0; i<divs.length; i++)  {divs[i].style.display= show ? 'block':'none'}

     }
  </script>
</head>

<body>

<a class="yr" onclick="toggle('storyimg');return(false)">Показать картинки</a>
<div class="storyimg">
  <img src="...">
</div>
<div class="storyimg">
  <img src="...">
</div>
<div class="storyimg">
  <img src="...">
</div>

</body>

</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сделать ссылки из файла CSS корректными для всех директрорий сайта? GrEb (X)HTML/CSS 7 28.01.2020 12:56
Browser Object Model, где найти для всех платформ? alta Javascript под браузер 2 09.10.2010 21:24
Событие change для всех элементов exvion jQuery 2 25.01.2010 18:18
Пошаговый вывод скрипта для IE всех версий. Zidky Элементы интерфейса 10 17.06.2009 18:27
Как присвоить текст строке состояния для всех браузеров? Tend Общие вопросы Javascript 4 14.05.2009 16:38