JS-获取class类名为某个的元素-【getClass】函数封装

简介: 原理:/*  * 根据class获取元素. * 原理是,取出oparent下的所有元素,组成数组,然后遍历类名,全等判断。*/源码  1 1 function getClass(oParent,clsName){ 2    var oParent = document.

原理:

/*
 * 根据class获取元素.
 * 原理是,取出oparent下的所有元素,组成数组,然后遍历类名,全等判断。
*/

源码

 

 1  1 function getClass(oParent,clsName){
 2     var oParent = document.getElementById(oParent);
 3  2     var boxArr = new Array();
 4  3     oElements  = oParent.getElementsByTagName('*');
 5  4     for(var i=0;i<oElements.length;i++){
 6  5         if(oElements[i].className == clsName){
 7  6             boxArr.push(oElements[i]);
 8  7         }
 9  8     }
10  9     return boxArr;
11 10 }

 

 

 

函数调用

getClass(oParent,clsName);

代码解释:

function getClass(oParent,clsName){
    var boxArr = new Array();
    //boxArr 用来存储获取到的所有class为clsName的元素
    
    oElements  = oParent.getElementsByTagName('*');
    //oElements 获得的是父元素下的所有元素,是一个集合
    
    for(var i=0;i<oElements.length;i++){
        //循环遍历获取到的oElements数组
        
        if(oElements[i].className == clsName){
            //判断数组中,元素的类名如果和传过来的想要获取的类名一致的话
            
            boxArr.push(oElements[i]);
            //利用数组的push功能把对应的元素装进去
        }
    }
    return boxArr;
    //弹出最后的结果
}

________________________________________________________________________________________________________2017-05-21  18:35:10

丰富一下另一端js

 

1 <script type="text/javascript">
2     window.onload = function(){
3         var oUL = document.getElementById("ul1");
4         var oLi = getByClass(oUL,"li_box");
5         for(var i=0;i<oLi.length;i++){
6             oLi[i].style.background = "red"
7         }
8     }
9 </script>

 

 

解释:

var oUL = document.getElementById("ul1");

//获取到需要的找class的父元素


var oLi = getByClass(oUL,"li_box");

//让子元素们等于函数返回来的那个数组。其实直接用getElementsByTagName获取到的也是一个元素集合。现在直接等于一个数组,能用的方法和属性则更多了呢!顺便调用函数并传参。参数是父元素的变量和需要找的类名。

for(var i=0;i<oLi.length;i++){

//循环弹出来的数组,也就是所有类名为“li_box”的li


//接下来直接做你想让那些带你需要类名的元素该做的事。
比如:oLi[i].style.background = "red"

 

 

 

——————————————————————————————————————2018年修复bug—————————————————————————————————————

function getClass(oParent,clsName) {
	var oParents = document.getElementById(oParent);
	var boxArr = new Array();
	var oElements  = oParents.getElementsByTagName('*');
	for(let i=0;i<oElements.length;i++){
		var classNameArr = oElements[i].className.split(/\s+/);
		for (let j = 0; j < classNameArr.length; j++) {
			if(classNameArr[j] === clsName){
	        boxArr.push(oElements[i]);
	    }
		}
	    
	}
	console.log(boxArr)
	return boxArr;
	
}
getClass('搜索范围外框的idName','要搜索的className');

这种写法主要是针对,如果你要搜索拥有该className的元素上边,还有别的className,那么之前的程序是做不到的,所以用split把元素上的类名切开来,再进行对比。

这里,在boxArr.push那里,原来想错了,写的classNameArr[j],后来发现,boxArr最后是一个字符串数组,并不是元素数组,所以改成oElements[i]就可以了。

 

 

声明:

  请尊重博客园原创精神,转载或使用图片请注明:

  博主:xing.org1^

  出处:http://www.cnblogs.com/padding1015/

  time: 20180106 20:28:32

 

目录
相关文章
|
19天前
|
JavaScript 前端开发 程序员
前端原生Js批量修改页面元素属性的2个方法
原生 Js 的 getElementsByClassName 和 querySelectorAll 都能获取批量的页面元素,但是它们之间有些细微的差别,稍不注意,就很容易弄错!
|
1月前
|
JavaScript 前端开发 Java
[JS]同事:这次就算了,下班回去赶紧补补内置函数,再犯肯定被主管骂
本文介绍了JavaScript中常用的函数和方法,包括通用函数、Global对象函数以及数组相关函数。详细列出了每个函数的参数、返回值及使用说明,并提供了示例代码。文章强调了函数的学习应结合源码和实践,适合JavaScript初学者和进阶开发者参考。
41 2
[JS]同事:这次就算了,下班回去赶紧补补内置函数,再犯肯定被主管骂
|
1月前
|
JavaScript 前端开发 开发者
.js的dom元素操作
【10月更文挑战第29天】通过灵活运用这些 DOM 元素操作方法,JavaScript 可以实现丰富的网页交互效果,如动态更新页面内容、响应用户操作、创建和删除页面元素等。在实际开发中,开发者可以根据具体的需求和场景,选择合适的 DOM 元素操作方法来实现所需的功能,为用户提供更加流畅和动态的网页体验。
|
1月前
|
前端开发 JavaScript 开发者
除了 Generator 函数,还有哪些 JavaScript 异步编程解决方案?
【10月更文挑战第30天】开发者可以根据具体的项目情况选择合适的方式来处理异步操作,以实现高效、可读和易于维护的代码。
|
2月前
|
JavaScript 前端开发
JavaScript 函数语法
JavaScript 函数是使用 `function` 关键词定义的代码块,可在调用时执行特定任务。函数可以无参或带参,参数用于传递值并在函数内部使用。函数调用可在事件触发时进行,如用户点击按钮。JavaScript 对大小写敏感,函数名和关键词必须严格匹配。示例中展示了如何通过不同参数调用函数以生成不同的输出。
|
2月前
|
存储 JavaScript 前端开发
JS函数提升 变量提升
【10月更文挑战第6天】函数提升和变量提升是 JavaScript 语言的重要特性,但它们也可能带来一些困惑和潜在的问题。通过深入理解和掌握它们的原理和表现,开发者可以更好地编写和维护 JavaScript 代码,避免因不了解这些机制而导致的错误和不一致。同时,不断提高对执行上下文等相关概念的认识,将有助于提升对 JavaScript 语言的整体理解和运用能力。
|
2月前
|
移动开发 JavaScript 前端开发
原生js如何获取dom元素的自定义属性
原生js如何获取dom元素的自定义属性
72 4
|
2月前
|
JavaScript 前端开发
js教程——函数
js教程——函数
42 4
|
2月前
|
存储 JavaScript 前端开发
js中函数、方法、对象的区别
js中函数、方法、对象的区别
21 2
|
2月前
|
存储 JavaScript 前端开发
JavaScript数据类型全解:编写通用函数,精准判断各种数据类型
JavaScript数据类型全解:编写通用函数,精准判断各种数据类型
26 0