Вывод JS

W
На сайте с 05.02.2010
Offline
99
272

Здравствуйте, сегодня уже помогли по JS, но появилась новая проблема. Заранее спасибо всем откликнувшимся. Есть следующий код:

<script>
    var current = "one";

var radio = document.getElementsByClassName("radio");
for(var i=0; i<radio.length; i++) {
    radio[i].addEventListener("change", function(e) {
    document.getElementsByClassName(current)[0].style.display = "none";
      document.getElementsByClassName(e.target.value)[0].style.display = "block";
    current = e.target.value;
  });
}
</script>
<style>
.one {
  display:block;
 
}
.two {
  display:none;
 
}
.three {
  display:none;
 
}
</style>
<label>
                        <input type="radio" name="radion" checked  value="one" class="radio" />Один
            </label>
          <label>
                        <input type="radio" name="radion"  value="two" class="radio" />Два
                        </label>
          <label>
                        <input type="radio" name="radion"  value="three" class="radio" />Три
            </label>
           
           

Его задача, выводить значения в зависимости от выбранного варианта (radio). Код работает, но проблема в следующем, если я в другом месте выведу те же самые инпуты но с другими значениями, скрипт меняет только в первых инпутах, т.е. вот это уже работать не будет:

<label>
                        <input type="radio" name="radion" checked  value="one" class="radio" />Яблоко
            </label>
          <label>
                        <input type="radio" name="radion"  value="two" class="radio" />Апельсин
                        </label>
          <label>
                        <input type="radio" name="radion"  value="three" class="radio" />Груша
            </label>


Выведется в зависимости от выбранного radio (Один / Два  / Три) а (Яблоко / Апельсин / Груша) не сработает. Подскажите как сделать так чтобы в зависимости от выбранного варианта выводились и фрукты и цифры) Заранее всем спасибо кто хоть что то подскажет!

S
На сайте с 13.10.2014
Offline
171
#1

Ключевое слово тут addEventListener

https://developer.mozilla.org/ru/docs/Web/API/EventTarget/addEventListener

смотрите в примерах. как раз есть похожий на ваш вариант

Метод EventTarget.addEventListener() - Интерфейсы веб API | MDN
Метод EventTarget.addEventListener() - Интерфейсы веб API | MDN
  • 2021.08.01
  • developer.mozilla.org
Метод регистрирует определённый обработчик события, вызванного на . может быть , , , или любым другим объектом, поддерживающим события (таким как ). Синтаксис Параметры Чувствительная к регистру строка, представляющая тип обрабатываемого события. Объект, который принимает уведомление, когда событие указанного типа произошло. Это должен быть...
W1
На сайте с 22.01.2021
Offline
306
#2
webmasterandrew :
Его задача, выводить значения

Каким образом "выводить"? В коде я вижу только "скрыть" и "показать".

И вторые инпуты у вас тоже первые. Это одна группа переключателей,  name="radion".

Мой форум - https://webinfo.guru –Там я всегда на связи
W
На сайте с 05.02.2010
Offline
99
#3
webinfo #:

Каким образом "выводить"? В коде я вижу только "скрыть" и "показать".

Да неверно выразился, скрыть / показать. Но display не применяется к новым дивам с тем же value. 
W
На сайте с 05.02.2010
Offline
99
#4
silicoid #:

Ключевое слово тут addEventListener

https://developer.mozilla.org/ru/docs/Web/API/EventTarget/addEventListener

смотрите в примерах. как раз есть похожий на ваш вариант

Спасибо! Буду пытаться разобраться, но так как не силен в коде может не получится, но за наводку спасибо!
W1
На сайте с 22.01.2021
Offline
306
#5
webmasterandrew #:
display не применяется к новым дивам с тем же value

Да я вообще не понимаю, чего Вы хотите добиться. Скрипт нерабочий. В том смысле, что отрабатывает непонятную задачу. Вещь в себе.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий