主页 > 前端 > javascript >
来源:自学PHP网 时间:2023-01-17 09:42 作者: 阅读:次
[导读] 有很多朋友可能都会碰到守getElementsByClassName在ie浏览器下不能识别,或者是说它压根就不认识这个命令了,下面我来介绍如何写一个兼容ie浏览器的getElementsByClassName出来吧。...
|
IE浏览器不支持getElementsByClassName解决办法 document.getElementsByClassName = function(){
var tTagName ="*";
if(arguments.length > 1){
tTagName = arguments[1];
}
if(arguments.length > 2){
var pObj = arguments[2]
}
else{
var pObj = document;
}
var objArr = pObj.getElementsByTagName(tTagName);
var tRObj = new Array();
for(var i=0; i<objArr.length; i++){
if(objArr[i].className == arguments[0]){
tRObj.push(objArr[i]);
}
}
return tRObj;
}
测试涵数 function test(){
var obj=document.getElementsByClassName(”qq”);
for (var i=0;i<obj.length;i++){
obj[i].style.color=”#ff0000″;
}
}
function test2(){
var obj=document.getElementsByClassName(”qq”,”DIV”);
for (var i=0;i<obj.length;i++){
obj[i].style.color=”#ff0000″;
}
}
function test3(){
var myid=document.getElementById(’ok’);
var obj=document.getElementsByClassName(”qq”,”DIV”,myid);
for (var i=0;i<obj.length;i++){
obj[i].style.color=”#ff0000″;
}
}例2 if (navigator.appName == 'Microsoft Internet Explorer') {
document.getElementsByClassName = function() {
var tTagName = "*";
if (arguments.length > 1) {
tTagName = arguments[1];
}
if (arguments.length > 2) {
var pObj = arguments[2]
} else {
var pObj = document;
}
var objArr = pObj.getElementsByTagName(tTagName);
var tRObj = new Array();
for ( var i = 0; i < objArr.length; i++) {
if (objArr[i].className == arguments[0]) {
tRObj.push(objArr[i]);
}
}
return tRObj;
}
}完整实例 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>float</title>
<style type="text/css">
.clear{clear:both;}
.fl{float:left;}
.fr{float:right;}
.div1{width:200px; height:200px;border:1px solid #ccc; background:#F00; filter:alpha(opacity=50); opacity:0.5; }
.div2{width:200px; height:200px;border:1px solid #ccc; background:#F00; filter:alpha(opacity=40); opacity:0.5; }
.div3{width:auto; overflow:hidden; border:1px solid #ccc; background:#999; color:#fff;}
</style>
</head>
<body>
<div class="div1 fl">左浮</div>
<div class="div2 fr">右浮</div>
<div class="div3">
<h4>中间</h4>
</div>
<div class="div3 div5 div6">
<h4>中间</h4>
</div>
<div class="div3456456 div5 div6 div8">
<h4>中间</h4>
</div>
<script>
function getClass(class_name,tag_name){
var classes;
if (document.getElementsByClassName){
classes = document.getElementsByClassName(class_name);
for(var i = 0; i<classes.length; i++)
alert(classes[i].innerHTML);
}
return classes;
}else{
if(tag_name == null){tag_name = "*";}
var tags = document.getElementsByTagName(tag_name);
var classes = new Array();
for(var i=0,j=0; i<tags.length; i++){
var attr_class_name = " " + tags[i].className + " "; //加上" "只是为了给原class属性值左右加上一个空格符
if(attr_class_name.indexOf(" " + class_name + " ") != -1){ //这里加上" "是为了让寻找的class是一个单独的class,避免出现找div3,却出现div345的现象。
classes[j++] = tags[i];
}
}
alert(classes);
return classes;
}
}
var div3 = getClass("div3");
</script>
</body>
</html>以上就是IE浏览器不支持getElementsByClassName解决办法全部内容,感谢大家支持自学php网。 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com