你弄错了 是document.getElementsByName()方法

解决方案 »

  1.   

    呵呵,不好意思,是写帖子的笔误,我的js里没写错,如果有错的话,ff也会报错了。
      

  2.   

    霎标签的name,在form里吗,是提交控件吗?
      

  3.   

    是的,动态添加删除的是input type="hidden" id="pkey"+i name="pkey[]" value="xx",是添加在form里面的,为要提交的变量。
      

  4.   

    添加删除input type="hidden"的代码是没有问题的,已经验证过了。
      

  5.   

    如此啊
    ie下用document.createElement("input")创建并设置name属性的input控件
    用document.getElementsByName()的方法是获取不到的
    这是IE的问题
    不过你可以用document.getElementsByTagName("input")的方法来来查找出你要的控件的
      

  6.   

    我是通过document.createElement("input")创建并设置name属性的input控件,ie不能用document.getElementsByName()的方法来获取,而ff和opera都可以。
    看来我只能用document.getElementsByTagName来查找后遍历判断了。
      

  7.   

    我测试过,如果我把input的id当成参数给document.getElementsByName,还是可以取到的。
    因为id是唯一的,所以只能作为测试用,不能满足我的要求。
      

  8.   

    恩 目前看楼上说的差不多 通过document.getElementsByTagName找到所有的元素。然后再通过getAttribute("name")获取属性“name”进行判断
      

  9.   

    document.getElementsByTagName();
    getAttribute();要这么复杂吗?
      

  10.   

    ie的document.getElementsByName和document.getElementById都有bug
    ByName只查找img input 这些对象而ById会返回name符合要求的对象
    测试了下楼主所提到的想象,如果不是动态生成的话还是可以的,动态创建的不可以
    <html>
    <body>
    <input type="text" name="txt1" id="b_1" value="1"/>
    <input type="text" name="txt1" id="b_2" value="1"/>
    <input type="text" name="txt1" id="b_3" value="1"/>
    <input type="text" name="txt1" id="b_5" value="1"/><script type="text/javascript">
    var oFrm=document.getElementById("form1");
    var oHid;
    for(var i=0;i<4;i++){
    oHid=document.createElement("input");
    oHid.type="hidden";
    oHid.name="hid[]";
    oHid.id="a_"+i;
    oHid.value=i;
    document.appendChild(oHid);
    }
    var aHid=document.getElementsByName("hid[]");
    var aTxt=document.getElementsByName("txt1");
    alert("name相同隐藏域个数:"+aHid.length);
    alert("name相同文本框个数:"+aTxt.length);
    </script>
    </body>
    </html>
      

  11.   

    开始我以为是name="pkey[]"中,“[]”的缘故,后来找资料发现应该是ie的问题,现在通过用ByTagName和对name的判断已经实现我的设计。谢谢大家的关心。
    主要是想偷懒,不想通过循环来判断name,呵呵。