解决方案 »

  1.   

    IE以外的浏览器创建 DOM 树时生成些空白字符,相当于空白的文本节点,测试的话可以通过nodeType查看下node类型,1表示元素节点,2是属性节点,3是文本节点
      

  2.   

    你对子节点的理解不对,你可以参照http://www.w3school.com.cn/htmldom/dom_nodes.asp
      

  3.   

    我的意思是为什么
    <td id="mytd3">
           <input maxlength="3" >
           <input>
           <input>
    </td>var nodes=document.getElementById("mytd3").childNodes
       alert(nodes.length);
       }
    会是返回节点长度是6;<tr  id="tr1">
    <td></td>
    <td></td>
    <td></td>
    </tr>
    var nodes=document.getElementById("tr1").childNodes
       alert(nodes.length);
     }
    返回的节点长度是3  
    是否是在调用childNodes的时候会返回了input标签的默认属性  type="text"  属性节点,如果是这样为什么不返回maxlength节点,这是我的疑问点。好了我先去看看那个是不是input标签的默认属性  type="text"  属性节点
      

  4.   

    还有种结点叫做文本结点(TextNode),试试这个你就明白了。<table>
            <td id="mytd3"><input maxlength="3" ><input><input></td>
    </table>以上结果是3,因为这次就没有文本结点了。有一个空格就会有一个文本结点。
      

  5.   

    <td id="mytd3">
           <input maxlength="3" >
           <input>
           <input>
    </td>INPUT null
    #text 
    INPUT null
    #text 
    INPUT null
    #text <td id="mytd3">
    <input maxlength="3" ><input><input></td>
    INPUT null
    INPUT null
    INPUT null
    <td id="mytd3">
    a<input maxlength="3" >b<input>c<input></td>
    </tr>#text a
    INPUT null
    #text b
    INPUT null
    #text c
    INPUT null
      

  6.   

    如果你只要元素节点的话,把childNodes改成children就行了。
      

  7.   

    这是典型的javascript的闭包问题。 可以谷歌下关键词”JavaScript闭包 for 循环“ 一搜遍知。
    http://blog.csdn.net/helpzp2008/article/details/32730707
      

  8.   

    2楼正解。
     LZ没理解节点,childnodes在不同浏览器下的结果也是不一样的。就是不同浏览器对节点处理不一样。 maxlength是节点元素属性。不是节点。