小白必看-------原生JS解决getElementsByClassName兼容问题

本文介绍了一种原生JS解决getElementsByClassName兼容性的方法,通过自定义函数实现跨浏览器一致的类名检索,适用于单类名的场景。

原生JS解决getElementsByClassName兼容问题

//通过自定义函数实现获取类名(不适合多个类名)

		function getElementsByClassName(node,classname){
			if(node.getElementsByClassName){
				return node.getElementsByClassName(classname);
			}else{
				var results=new Array();
				var elems=node.getElementsByTagName("*");
					for(var i=0;i<elems.length;i++){
						if(elems[i].className.indexOf(classname)!=-1){
							results[results.length]=elems[i];
						}
					}
					return results;
			}
		}
var  myDiv=document.getElementById("div");
var myElement=getElementsByClassName(myDiv,"box");

这个函数接收两个参数,第一个node表示我们的搜索节点,第二个参数则是搜索的类名。

  • 如果传入节点已经存在适当的getElementsByClassName函数,那么这个函数就直接返回相应的节点列表。

  • 如果getElementsByClassName函数不存在,这个函数就会循环遍历所有的标签,查找相应的类名元素

注意该方法不适合多个类名,后续我还更新一些适合大家原生js

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值