javascript深入之查找元素操作

本文介绍了如何使用JavaScript获取HTML元素的类名,包括利用`getElementsByClassName`方法的使用方式及实例演示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

getElementsByClassName:
<body >
<ul> 
   <li id="a1" class="a">aa</li> 
   <li id="a2" class="a b">aa</li> 
   <li id="a3" class="aa a b">aa</li> 
</ul> 
<div class="a">afdafaf</div>
<script type="text/javascript">
var getElementsByClassName = function(className,node,tag){
	var node = node || document,
		nodes,res = [],
		match = false,
		eles,ele,classes;
	if(document.getElementsByClassName){
		nodes= node.getElementsByClassName(className);
		if(typeof tag !== "undefined"){
			for(var i=0,len=nodes.length; i<len;i++){
				var node = nodes[i];
				if(tag !== "*" && node.tagName === tag.toUpperCase()){
					res.push(node);
				}
			}
		}else{
			res=nodes;
		}
	}else{
		tag = tag || "*";
		classes = className.split(" ");
		eles = (tag === "*" && node.all) ? node.all : node.getElementsByTagName(tag);
		match = false;
		//循环比较
		//for(var i=eles.length; i>0; i--){
		for (var i=0,elen=eles.length; i<elen; i++){
			var ele = eles[i];
			for(var k=0,klen=classes.length; k<klen; k++){
				match =new RegExp("(^|\\s)" + classes[k] + "(\\s|$)").test((ele.className).replace(/(^\s+)|(\s+$)/,""));
				if(!match) break;
			}
			if(match) res.push(ele);
		}
	}
	return res;
}
//实例:
alert(getElementsByClassName("a",document,"li").length);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值