Задать вопрос
@ruslan_f0x

Можно ли сократить как нибудь код js?

Добрый день!
Написал код, теперь думаю, что его можно сократить, но не знаю как, прощу помощи)

5e1700555bef8455948695.jpeg
  • Вопрос задан
  • 106 просмотров
Подписаться 1 Простой 3 комментария
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Профессиональная вёрстка на HTML и CSS
    3 месяца
    Далее
  • Stepik
    Основы HTML и CSS
    2 недели
    Далее
  • OTUS
    HTML/CSS
    3 месяца
    Далее
Решения вопроса 2
twobomb
@twobomb
$(function(){
  $("#sel").change(function(){
    $("#BNBUSDT,#MANABTC,#MANAETH,#BNBBTC").css("display","none");
    $("#"+$(this).val()).css("display","block");
  });
});


P.S. Для любителей нативного js

window.onload = () =>{
  document.all.sel.onchange =(e) => {
    document.querySelectorAll("#BNBUSDT,#MANABTC,#MANAETH,#BNBBTC").forEach((e) =>{
    	e.style.display = "none";
    });
    document.querySelector("#"+e.srcElement.value).style.display = "block";
  };
}
Ответ написан
Комментировать
@Mysianio
вайти в айти
Все document.getElementById('selector') заменить на переменные, вы очень часто их используете
Напрмиер:
let manabtc = doucment.getElementById('MANABTC')
...
manabtc.style.display = ...
...

А раз вы еще используете и JQuery судя по $, то можете сделать так:
let manabtc = $('#MANABTC')

А так же в самом начале 'change' евента, прописать всем опциям display='none'.
А потом через if менять стиль дисплея только 1 элементу
Например:
a.style.display ='none'
b.style.display ='none'
c.style.display ='none'
d.style.display ='none'
if(a){
   a.style.display='block'
}
if(b){
   b.style.display='block'
}

И так далее

Вуляля, ваш код сократился в 2-3 раза
P.S. Сверху эксперт по JQuery, так что лучше сделать, как написал он, мой вариант больше подходит для нативного js
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы