ie8以下不兼容document.getElementsByName解决方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ie8以下不兼容document.getElementsByName解决方法相关的知识,希望对你有一定的参考价值。
在IE8以认为只有文本标签才有name属性的,一些元素标签用document.getElementsByName获取不到DOM,如DIV,span等,这里做一下兼容。
html:
<div name="pox">我是pox</div> <div name="pox">我是pox</div> <div name="pox">我是pox</div> <div name="pox">我是pox</div> <div name="pox">我是pox</div>
兼容JS:
function getByName(Name){ var i=document.getElementsByName(Name) if(i>0){ return i; }else{ var aEle=document.getElementsByTagName(‘*‘); var arr=[]; for(var i=0;i<aEle.length;i++){ if(aEle[i].getAttribute("name")==Name){ arr.push(aEle[i]) } } return arr; } }
测试JS:
<script type="text/javascript"> window.onload=function(){ function getByName(Name){ var i=document.getElementsByName(Name) if(i>0){ return i; }else{ var aEle=document.getElementsByTagName(‘*‘); var arr=[]; for(var i=0;i<aEle.length;i++){ if(aEle[i].getAttribute("name")==Name){ arr.push(aEle[i]) } } return arr; } } var Box=getByName(‘pox‘); alert(Box.length); } </script>
以上是关于ie8以下不兼容document.getElementsByName解决方法的主要内容,如果未能解决你的问题,请参考以下文章
兼容IE8以下,获取className节点的元素(document.getElementsByClassName()兼容写法)。
window.getComputedStyle能够获取元素的实际样式,但是低版本的ie8及以下不支持,如何在低版本的ie上兼容类似的功能