JavaScript:className获取元素、封装函数getByClass

<ul>下有8<li>标签如下,其中4li标签的classbox,通过以下语句可以选出这4个元素

	window.onload = function(){
		var oUl = document.getElementById('ul1');
		var aLi = oUl.getElementsByTagName('li');
		for (var i = aLi.length - 1; i >= 0; i--) {
			if(aLi[i].className == 'box'){
				alert(aLi[i].className);
			}
		}
	};

if语句中替换成如下代码,可以将box背景色变成红色

aLi[i].style.backgroundColor = 'red';

下面封装一个函数getByClass( oParent,className ),返回值为所有类名为className的元素

	function getByClass(oParent,className){
		var result = [];
		var aElement = oParent.getElementsByTagName("*");
		for (var i = aElement.length - 1; i >= 0; i--) {
			if(aElement[i].className == className){
				result.push(aElement[i]);
			}
		}
		return result;
	}

完整例程如下

<!DOCTYPE html>
<html>
<head>
	<title>learn js</title>
<style type="text/css">

</style>
<script type="text/javascript">
	function getByClass(oParent,className){
		var result = [];
		var aElement = oParent.getElementsByTagName("*");
		for (var i = aElement.length - 1; i >= 0; i--) {
			if(aElement[i].className == className){
				result.push(aElement[i]);
			}
		}
		return result;
	}
	window.onload = function(){
		var oUl = document.getElementById('ul1');
		var aLi = getByClass(oUl,'box');
		for (var i = aLi.length - 1; i >= 0; i--) {
			aLi[i].style.backgroundColor = 'red';
		}
	};
</script>
</head>

<body>
<ul id="ul1">
	<li>1</li>
	<li class="box">2</li>
	<li>3</li>
	<li class="box">4</li>
	<li>5</li>
	<li class="box">6</li>
	<li>7</li>
	<li class="box">8</li>
</ul>
</body>
</html>

 

posted @ 2020-02-09 17:38  昨夜昙花  阅读(18)  评论(0)    收藏  举报