Как по всему документу скрыть значения которые имеют undefined?

Всем привет! Делаю опросник, из которого данные через Ajax записываются в БД, в формате JSON, дело в том что при множественном выборе ответа, человек может выбрать 5 из 7 ответов, и если у 5ти будет значение, то у остальных 2-х будет undefined, как можно сделать так чтобы скрывать значения которые имеют undefined, из визуальной части. Спасибо!
5ed77cfd530aa148009888.png
  • Вопрос задан
  • 107 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
То есть, вместо того, чтобы изначально не пытаться показывать то, чего нет, вы хотите заметать мусор под ковёр.

Умно, ничего не скажешь.

А главное - это будет ни разу не костыль.
/*
 * надеюсь, хотя бы вместо "по всему документу" вы сумеете подобрать
 * какой-нибудь вменяемый селектор, чтобы не проверять реально всё,
 * а только те элементы, где ваш "undefined" действительно может случиться
 */
document.querySelectorAll('*').forEach(n => {
  const text = n.innerText?.trim();
  if (text === 'undefined') {
    n.hidden = true;
  }
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
FinGanapre
@FinGanapre
Грустно, что так вышло, но это уже другая история:)

Какая структура у JSON который приходит на клиент для вывода?
Можно отфильтровать данные перед выводом на стороне клиента и работать с уже "чистыми".

Например так:
const serverData = [
  {
    answ1: 'text 1',
    answ2: 'text 2',
    answ3: undefined
  },
  {
    answ1: undefined,
    answ2: 'text 2',
    answ3: undefined
  }
]

const clearData = serverData
  .map( item => Object.values( item ) )
  .filter( item => item !== undefined )

console.log(clearData)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы