javascript 根据类名获取元素
导读:Javascript根据类名获取元素在前端开发中,经常需要根据元素的类名来获取对应的DOM元素。这时,Javascript提供一种方便的方法来实现——getElementsByClassName( 。假设我们有如下HTML代码:<di...
Javascript根据类名获取元素
在前端开发中,经常需要根据元素的类名来获取对应的DOM元素。这时,Javascript提供一种方便的方法来实现——getElementsByClassName()。
假设我们有如下HTML代码:
div class="container">
div class="box">
box1/div>
div class="box">
box2/div>
div class="box">
box3/div>
/div>
现在,我们希望获取所有类名为"box"的DOM元素,可以使用如下代码:
var boxes = document.getElementsByClassName("box");
执行这段代码后,变量boxes将包含所有类名为"box"的DOM元素。
如果要获取某一个具体的元素,可以通过下标来指定:
var box1 = boxes[0];
//获取第一个box元素var box2 = boxes[1];
//获取第二个box元素如果有多个类名,可以在getElementsByClassName()中传入多个类名参数:
div class="container">
div class="box yellow">
box1/div>
div class="box red">
box2/div>
div class="box yellow">
box3/div>
/div>
var yellowBoxes = document.getElementsByClassName("box yellow");
//获取类名为"box"和"yellow"的元素var redBoxes = document.getElementsByClassName("box red");
//获取类名为"box"和"red"的元素需要注意的是,getElementsByClassName()返回的是一个类似数组的对象,不能直接使用数组的方法进行操作,需要先将其转化为数组。幸运的是,现代浏览器提供了Array.from()方法来将其转化为数组:
var boxes = document.getElementsByClassName("box");
var boxArray = Array.from(boxes);
//将boxes对象转化为数组boxArray.forEach(function(box){
//对每个box进行操作}
);
另外,如果想要支持IE8及以下版本的浏览器,可以使用自定义的函数来模拟getElementsByClassName()的功能:
function getElementsByClassName(className){
var result = [];
var elems = document.getElementsByTagName("*");
for(var i=0;
ielems.length;
i++){
var elem = elems[i];
if(elem.className.indexOf(className) >
-1){
result.push(elem);
}
}
return result;
}
以上就是根据类名获取元素的相关内容,希望能对大家有所帮助。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: javascript 根据类名获取元素
本文地址: https://pptw.com/jishu/539588.html
