getElementsByName 在ie不同版本下的兼容问题

使用原生的js方法document.getElementsByName(htmlName);在不同ie版本下的表现会不一样,主要体现在在ie10以下的版本只获取表单元素如input select等元素的name,在ie10本身或以上的版本会获取除了表单外的元素的name,因此对于一些只想获取表单元素的代码逻辑在ie10 11 下就会获取多余的元素,这点尤为要记住,那如何解决这个问题呢,也简单,就是先用getElementsByTagName获取到指定标签的元素,然后再遍历获取name为某值的元素。如下所示:


旧版实现:var checks = document.getElementsByName(htmlName);//原意只想获取input等于某值的元素,但是当时为了方便而这么去写


新版实现:

var inputItems=document.getElementsByTagName("input");
		    var checks=new Array();
		    //从所有的input元素中找到名字等于“htmlName”的复选框
		    for(var i=0;i<inputItems.length;i++){
		    	if(inputItems[i].getAttribute("name") == htmlName){
		    		checks.push(inputItems[i]);
		    	}
		    }




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值