简单的方法来清除div中的任何输入的值? [英] Simple way to clear the value of any input inside a div?

查看:101
本文介绍了简单的方法来清除div中的任何输入的值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有没有一种简单的方法来迭代元素中的子元素,例如div,如果它们是任何输入(收音机,选择,文本,隐藏...)清除他们的价值?

Is there a simple way to iterate over the child elements in an element, say a div, and if they are any sort of input (radio, select, text, hidden...) clear their value?

编辑添加链接到示例解决方案代码非常感谢Guffa和其他受访者!我从中学到了!

Edit to add link to example solution code. Many thanks to Guffa and the other respondents! I learned from this!

推荐答案

我想你想清除所有的孩子,不仅是直接的孩子,所以它会有递归。由于不同的输入元素被不同的清除,您必须检查其类型,以便您知道如何处理它们。我想你也想清除textareas,但是保持按钮不变:

I suppose that you want to clear all children, not only the direct children, so it would have to be recursive. As different input elements is cleared differently, you have to check their type so that you know what to do with them. I suppose that you want to clear textareas also, but leave buttons unchanged:

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'));

编辑:

忘记选择...


Forgot the select...

编辑2:

一些更正:childNodes.length,处理没有tagName和大写tagName值的元素。

Edit 2:
Some corrections: childNodes.length, handling elements without tagName and uppercase tagName values.

这篇关于简单的方法来清除div中的任何输入的值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆