Можно ли сделать проще и вообще нужно ли

249
09 марта 2019, 10:50

Есть таблица и ее стоблцы отображаются по пришедшему id. Вопрос, я чувствую что можно это сделавть лучше чем я сделал сейчас, но как? Как вариант, записать в массив и отображать по пришедшему id?

  for (let i = 0; i < table.length; i++) {
    switch (id) {
      case 0:
        tax[i].style.display = "block";
        tax[i].style.display = "none";
        tax[i].style.display = "none";
        break;
      case 1:
        tax[i].style.display = "none";
        tax[i].style.display = "block";
        tax[i].style.display = "none";
        break;
      case 2:
        tax[i].style.display = "none";
        tax[i].style.display = "none";
        tax[i].style.display = "block";
        break;
    }
  }
Answer 1

var d1 = (id == 0)? "block" : "none"; 
var d2 = (id == 1)? "block" : "none"; 
var d3 = (id == 2)? "block" : "none"; 
 
for (let i = 0; i < table.length; i++) { 
  // c этими тремя строчками что-то не так, но воспроизведем как в вопросе 
  tax[i].style.display = d1; 
  tax[i].style.display = d2; 
  tax[i].style.display = d3; 
}

Answer 2
const map1 = ['block', 'none', 'none']
const map2 = ['none', 'block', 'none']
const map3 = ['none', 'none', 'block']
table.forEach((row, i) => {
   tax[i].style.display = map1[id]
   tax[i].style.display = map2[id]
   tax[i].style.display = map3[id]
})
Answer 3

В вашем случае можно просто индекс с id сравнивать:

for (let i = 0; i < table.length; i++) {
    tax[i].style.display = i === id ? 'block' : 'none';
}
READ ALSO
Выполнение функции внутри функции

Выполнение функции внутри функции

После выполнения определенного кода, нужно сразу же сделать следующую (разбить таблицу на страницы)Но почему-то выдаёт ошибку

192
Поиск наибольшей общей подстроки

Поиск наибольшей общей подстроки

Требуется разработать на языке JavaScript код, печатающий на консоль самую длинную общую подстроку всех переданных строк

172
Добавление и удаление ячеек через JS

Добавление и удаление ячеек через JS

Необходимо сделать скрипт который при нажатии на кнопку создаёт ячейку таблицы в низ, и при нажатии на другую кнопку создаёт ячейки таблицы...

154