据说是IE的一个BUG;在Firefox是沒問題的...

解决方案 »

  1.   

    还真是的,我用firefox打开可以正常显示。
    那请问我这个问题该如何解决呢,我总不能要求客户一定要用firefox吧?。。
    急死我了!
      

  2.   

    td.childNodes.length打印出来的是有6个节点  确实只有3个那么用td.childNodes.item[].value拿值的话  item里面应该是0,2,4 但是换别的浏览器肯定会出错  你一定要这样的话 可以用getElementByName
      

  3.   


    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    <script type="text/javascript">
    function test()
    {
        var inputs = document.getElementById("test").getElementsByTagName("input");
        window.alert(inputs[1].value);
    }
    </script>
    </head>
    <body>
    <table id="tb">
    <tr>
    <td   id="test"> 
    <input   type="text"   name="a"   value="ji"> 
    <input   type="text"   name="b"   value="ls"> 
    <input   type="button"   value="提交"   onclick="test()"> 
    </td> 
    </tr>
    </table>
    </body>
    </html>这样就可以获取了吧
      

  4.   


    function   doaction(){ 
        var   td=document.getElementById("test"); 
    alert(td.childNodes[1].nodeType);
        //window.alert(td.firstChild.nextSibling.value); 
    }
    通过查看这个nodeType,得到的是3,是个无效的节点,而只有nodeType为1时,才可以得到我们想要的节点
    在ie中是得到3,而在firefox中得到的是1
      

  5.   

    顶4楼 getElementsByTagName.....哎 浏览器兼容就是麻烦...
      

  6.   

    IE下用children来获取子节点集合
    IE下childNodes包括了textnode和HTMLElement 你的2个input中间有个换行被当作textNode来处理了
    如果你这么写就没问题了
    <input type="text" name="a" value="ji"><input type="text" name="b" value="ls">
      

  7.   

    对,在IE下只要中间有字符,不管是可见字符还是不可见字符IE都算一个element,但
    在firefox下就没这个问题,真是麻烦。