Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.04.2013, 23:00
Новичок на форуме
Отправить личное сообщение для vasiliy_shkolniy Посмотреть профиль Найти все сообщения от vasiliy_shkolniy
 
Регистрация: 10.04.2012
Сообщений: 8

Простой динамический список
Подскажите пожалуйста реализацию для всех браузеров:

<select>
<option>1 вариант</option>
<option>2 вариант</option>
</select>

<div>Блок виден при выборе 1 варианта и "display:none" при выборе второо</div>
<div>Блок не отображается при выборе 1 варианта и появляется при выборе второо</div>


Вариантов 2, а динамических блоков несколько.
Ответить с цитированием
  #2 (permalink)  
Старый 21.04.2013, 12:08
Аватар для Hekumok
Отправить личное сообщение для Hekumok Посмотреть профиль Найти все сообщения от Hekumok
 
Регистрация: 04.06.2012
Сообщений: 513

<style>
div {
 display: none ;
}
</style>
<select onchange="change(this.value);">
<option value=1 selected>1 вариант</option>
<option value=2>2 вариант</option>
</select>
<div>Блок виден при выборе 1 варианта и "display:none" при выборе второо</div>
<div>Блок не отображается при выборе 1 варианта и появляется при выборе второо</div>
<script>
var divs = document.getElementsByTagName("div") ;
function change(i) {
 i = i-1 ;
 divs[i].style.display = "block" ;
 i = !i - 0 ;
 divs[i].style.display = "none" ;
} ;
change(1) ;
</script>
__________________
★ ²º¹³ ☆
Ответить с цитированием
  #3 (permalink)  
Старый 21.04.2013, 17:09
Новичок на форуме
Отправить личное сообщение для vasiliy_shkolniy Посмотреть профиль Найти все сообщения от vasiliy_shkolniy
 
Регистрация: 10.04.2012
Сообщений: 8

Hekumok, спасибо. Можно немного по-другому? - чтобы блоки с одним классом показывась при первом варианте, а с другим при втором?. - чтобы можно было сделать много дин. блоков и они не влияли на другие блоки страницы.
Ответить с цитированием
  #4 (permalink)  
Старый 21.04.2013, 21:57
Аватар для Hekumok
Отправить личное сообщение для Hekumok Посмотреть профиль Найти все сообщения от Hekumok
 
Регистрация: 04.06.2012
Сообщений: 513

конечно можно
<style>
.div2 {
 display: none ;
}
</style>
<select onchange="change(this.value);">
<option value=1 selected>1 вариант</option>
<option value=2>2 вариант</option>
</select>
<div class="div1">Блок виден при выборе 1 варианта и "display:none" при выборе второо</div>
<div class="div2">Блок не отображается при выборе 1 варианта и появляется при выборе второо</div>
<div class="div1">Блок виден при выборе 1 варианта и "display:none" при выборе второо</div>
<div class="div2">Блок не отображается при выборе 1 варианта и появляется при выборе второо</div>
<div class="div1">Блок виден при выборе 1 варианта и "display:none" при выборе второо</div>
<div class="div2">Блок не отображается при выборе 1 варианта и появляется при выборе второо</div>
<script>
var divs = [document.getElementsByClassName("div1"), document.getElementsByClassName("div2")] ;
function change(i) {
 i = i-1 ;
 var nodeList = divs[i] ;
 var l = nodeList.length ;
 while(l--)
  nodeList[l].style.display = "block" ;
 i = !i - 0 ;
 nodeList = divs[i] ;
 l = nodeList.length ;
 while(l--)
  nodeList[l].style.display = "none" ;
} ;
</script>
__________________
★ ²º¹³ ☆

Последний раз редактировалось Hekumok, 21.04.2013 в 22:01.
Ответить с цитированием
  #5 (permalink)  
Старый 22.06.2013, 09:01
Новичок на форуме
Отправить личное сообщение для ichaos7777 Посмотреть профиль Найти все сообщения от ichaos7777
 
Регистрация: 22.06.2013
Сообщений: 6

Здравствуйте, данное решение не работает в ie8, как бы сделать так, чтобы в этом браузере все работало? спасибо)
Ответить с цитированием
  #6 (permalink)  
Старый 22.06.2013, 10:44
Аватар для SkyLight
Злюка-бобер
Отправить личное сообщение для SkyLight Посмотреть профиль Найти все сообщения от SkyLight
 
Регистрация: 21.03.2010
Сообщений: 438

jQuery или самостоятельно фильтровать элементы по классу.
__________________
In WEB We Trust
У всех есть своя темная сторона...
Ответить с цитированием
  #7 (permalink)  
Старый 22.06.2013, 10:52
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Замени getElementsByClassName("div1") на querySelectorAll(".div1")
Ответить с цитированием
  #8 (permalink)  
Старый 22.06.2013, 20:45
Новичок на форуме
Отправить личное сообщение для ichaos7777 Посмотреть профиль Найти все сообщения от ichaos7777
 
Регистрация: 22.06.2013
Сообщений: 6

Заменил, не работает ни в одном браузере
Ответить с цитированием
  #9 (permalink)  
Старый 23.06.2013, 04:10
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Ну и зачем врать?
<style>
.div2 {
 display: none ;
}
</style>
<select onchange="change(this.value);">
<option value=1 selected>1 вариант</option>
<option value=2>2 вариант</option>
</select>
<div class="div1">Блок виден при выборе 1 варианта и "display:none" при выборе второо</div>
<div class="div2">Блок не отображается при выборе 1 варианта и появляется при выборе второо</div>
<div class="div1">Блок виден при выборе 1 варианта и "display:none" при выборе второо</div>
<div class="div2">Блок не отображается при выборе 1 варианта и появляется при выборе второо</div>
<div class="div1">Блок виден при выборе 1 варианта и "display:none" при выборе второо</div>
<div class="div2">Блок не отображается при выборе 1 варианта и появляется при выборе второо</div>
<script>
var divs = [document.querySelectorAll(".div1"), document.querySelectorAll(".div2")] ;
function change(i) {
 i = i-1 ;
 var nodeList = divs[i] ;
 var l = nodeList.length ;
 while(l--)
  nodeList[l].style.display = "block" ;
 i = !i - 0 ;
 nodeList = divs[i] ;
 l = nodeList.length ;
 while(l--)
  nodeList[l].style.display = "none" ;
} ;
</script>
Ответить с цитированием
  #10 (permalink)  
Старый 23.06.2013, 10:34
Новичок на форуме
Отправить личное сообщение для ichaos7777 Посмотреть профиль Найти все сообщения от ichaos7777
 
Регистрация: 22.06.2013
Сообщений: 6

Спасибо большое, разобрался, вставлял скрипт в head, поэтому не работало, также задумался о том как бы сделать все тоже самое но без select, бывает трудно его стилизовать, видел на сайте rkz.ru как это сделано, но в коде не могу разобраться, как сделать, помогите плиз.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамический список элементов формы lar_i_sa Общие вопросы Javascript 0 08.03.2013 15:27
селект переделанный под список Vasёk18 Элементы интерфейса 0 13.04.2012 23:49
Динамический список djsadd Internet Explorer 1 13.04.2012 01:35
Динамический список из DIV`ов и INPUT`ов Andrew_li jQuery 5 09.06.2011 15:23
Заполнить список значениями из динамически созданного выпадающего списка zhuzha Элементы интерфейса 0 17.08.2010 14:40