在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>