function ShowChild(formObj) {
            window.alert("子控件的数量"+formObj.childNodes.length);
            for (var i = 0; i < formObj.childNodes.length; i++) {
                window.alert(formObj.childNodes.item(i).nodeName);
            }
        }
 <form id="form1" runat="server">
    <input type="text" id="txtName" />
    <input type="text" id="txtPassword" />
    <img src="../Images/28.jpg" id="imgDemo" alt="Hello" width="200" height="100" />
    <input type="button" value="提交" id="btnSubmit" onclick="ShowChild(this.form);" />
   
    </form>遍历form的子对象集合,为什么事9个呢,而且这个弹出的信息中间夹在有#text的字样,我不是很清楚,按道理来说form用应该是5个子对象才对啊?求解

解决方案 »

  1.   

    唉,还有body html之类那些标签在吧,你的页面肯定不只有这些标签
      

  2.   

    我传递的是form对象 ,并且只查找他内的控件!
      

  3.   

    你那些回车键也算在内的是  TextNode
      

  4.   

    接口  nodeType常量  nodeType值  备注
    Element  Node.ELEMENT_NODE  1  元素节点
    Text  Node.TEXT_NODE  3  文本节点
    Document  Node.DOCUMENT_NODE  9  document
    Comment  Node.COMMENT_NODE  8  注释的文本
    DocumentFragment  Node.DOCUMENT_FRAGMENT_NODE  11  document片断
    Attr  Node.ATTRIBUTE_NODE  2  节点属性
      

  5.   

    多谢 ,那我如何只通过它获取form内的控件呢 ? 只用chilenode 而不用elements 呢~
      

  6.   

    或者 我如何用formObj.childNodes[“txtName”].value 来获取 <input type="text" id="txtName" />中输入的值呢
    我发现只有 用索引的方式可以获取 用key的方式如何获取呢?请赐教!
      

  7.   

    <script>function ShowChild(formObj) {
     // window.alert("子控件的数量"+formObj.childNodes.length);
      for (var i = 0; i < formObj.childNodes.length; i++) {
               if(formObj.childNodes[i].nodeType != 3)  window.alert(formObj.childNodes.item(i).nodeName);
      }
      }</script>
     <form id="form1" runat="server">
      <input type="text" id="txtName" />
      <input type="text" id="txtPassword" />
      <img src="../Images/28.jpg" id="imgDemo" alt="Hello" width="200" height="100" />
      <input type="button" value="提交" id="btnSubmit" onclick="ShowChild(this.form);" />
        
      </form>