#javascript
Здравствуйте. Подскажите, как сделать, чтобы не дублировать этот код: var showError = function(el) { el.parentNode.classList.remove('error'); el.parentNode.classList.add('success'); el.nextElementSibling.InnerHTML = element.dataset.error; } var showSuccess = function(el) { el.parentNode.classList.remove('error'); el.parentNode.classList.add('success'); el.nextElementSibling.InnerHTML = ''; }
Ответы
Ответ 1
function getClassSwitcher(classOff, classOn, getErrorMsg) { return function(el) { el.parentNode.classList.remove(classOff); el.parentNode.classList.add(classOn); el.nextElementSibling.innerHTML = getErrorMsg(); }; } const showError = getClassSwitcher('success', 'error', () => element.dataset.error); const showSuccess = getClassSwitcher('error', 'success', () => ''); Вариант попроще: function toggleClasses(el, on, off) { el.classList.remove(off); el.classList.add(on); } const showError = function(el) { toggleClasses(el.parentNode, 'error', 'success'); el.nextElementSibling.innerHTML = element.dataset.error; } const showSuccess = function(el) { toggleClasses(el.parentNode, 'success', 'error'); el.nextElementSibling.innerHTML = ''; }
Комментариев нет:
Отправить комментарий