Простой способ очистить значение какого-либо входа в отделении?

Честно, это походит на прекрасную идею, хотя Jason Punyon, конечно, прав, что необходимо сделать большое пропалывание перед тратой существенного количества времени разработчиков на отходах. Вы получаете представление о важной метрике из него, это иначе почти недоступно в интервьюировании: с чем чей-то любить работать.

я не думаю, что существует действительно любая потребность, которая будет касаться этого являющийся "справедливым" на основе темы или пытающийся представить последовательные ситуации различным кандидатам при поддержании права evaluatory отношение - что это не о том, получили ли они "правильный ответ" или перешли через правильный набор обручей, но какое усилие, решение проблем, коммуникационную способность и гибкость они показали. Вы потеряли бы большую часть преимущества осуществления путем превращения его в искусственный тест, не говоря уже об изменении его от чего-то, что разработчики могут извлечь некоторую пользу из (или по крайней мере все еще получить некоторую работу, сделанную во время) к крупной пустой трате их времени.

13
задан Benjamin 5 February 2014 в 15:33
поделиться

4 ответа

Я полагаю, что вы хотите очистить все children, а не только прямых потомков, поэтому он должен быть рекурсивным. Поскольку разные элементы ввода очищаются по-разному, вам необходимо проверить их тип, чтобы знать, что с ними делать. Я предполагаю, что вы хотите также очистить текстовые поля, но оставить кнопки без изменений:

function clearChildren(element) {
   for (var i = 0; i < element.childNodes.length; i++) {
      var e = element.childNodes[i];
      if (e.tagName) switch (e.tagName.toLowerCase()) {
         case 'input':
            switch (e.type) {
               case "radio":
               case "checkbox": e.checked = false; break;
               case "button":
               case "submit":
               case "image": break;
               default: e.value = ''; break;
            }
            break;
         case 'select': e.selectedIndex = 0; break;
         case 'textarea': e.innerHTML = ''; break;
         default: clearChildren(e);
      }
   }
}

Вызовите его со ссылкой на элемент:

clearChildren(document.getElementById('IdOfTheDiv'));

Редактировать:
Забыл выбрать ...

Редактировать 2:
Некоторые исправления: childNodes.length, обработка элементов без значений tagName и верхнего регистра tagName.

25
ответ дан 1 December 2019 в 17:28
поделиться

Oh boy, this would be a one liner with jQuery:

$(':input:not(:button)', div).val([])

Without jQuery you've got to account for