IE中getElementByName失效的问题!


注意:在IE下有些节点是没有name 属性的,就是用document.getElementsByName获取不到的。只有下面的tag有name属性
A, APPLET, attribute, BUTTON, EMBED, FORM, IMG, INPUT type=button, INPUT type=checkbox, INPUT type=file, INPUT type=hidden, INPUT type=image, INPUT type=password, INPUT type=radio, INPUT type=reset, INPUT type=submit, INPUT type=text, LINK, MAP, OBJECT, RT, RUBY, SELECT, TEXTAREA

其他都没有,比如 div,span

替代方案:(首先确定了不是标签的问题!)

在使用JavaScript写JSP页面时,我们经常使用getElementsByName("")方法。但是很多标签使用此方法并不可行。

name属性是input标签的内建属性,早期浏览器的getElementsByName方法是为了方便的获取用户的输入。由于name只是input的内建属性,其它标签没有,所以getElementsByName方法不能在别的标签中识别这一属性,因此getElementsByName方法只能用于input标签。(早期ie无效的根源

未解决此问题,我总结了两种解决方案:

1.使用jQuery来获取。

例:var statusList=getTdsByName("status");  替换为 var statusList=$('[name=status]');


2.添加方法

例:开发过程中我是用getElementsByName获取相同name的div标签,但是div本身没有Name属性,然后参考网上的办法,可以自己写方法来获取。如下:

[javascript] view plain copy
  1. function getDivsByName(sname){  
  2.         var t = document.all;  
  3.         var divs= new Array();  
  4.         for(var i=0;i<t.length;i++) if(t[i].name == sname)  divs.push(t[i]);  
  5.             return divs;   
  6.         } 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值