js 如何获取class的元素
<div class='aa'>1</div>
<div class='aa'>2</div>
如何根据class 点击就alert元素内数据 用js 展开
使用document.getElementsByClassName(’class‘)获取标签,使用innerText获取元素内的数据内容。
1、设计一个HTML简单页面,代码如下:
2、设计绑定的函数alertText(),代码如下:
3、此时的页面展示如下:
4、演示,点击其中的div,执行如下:
(1)点击第一个:
(2)点击第二个:
扩展资料:
HTML DOM getElementsByClassName() 方法解析:
1、定义和使用。
getElementsByClassName() 方法返回文档中所有指定类名的元素集合,作为 NodeList 对象。NodeList 对象代表一个有顺序的节点列表。NodeList 对象 我们可通过节点列表中的节点索引号来访问列表中的节点(索引号由0开始)。
提示: 使用 NodeList 对象的 length 属性来确定指定类名的元素个数,并循环各个元素来获取需要的那个元素。
2、语法。
document.getElementsByClassName(classname)。
3、参数。
String 类型的classname(需要获取的元素类名),多个类名使用空格分隔,如 "test demo"。
非IE6,7,8可以直接用自带的属性 getElementsByClassName,如果需要考虑兼容,就需要自己写了。下面是自己写的:
function getClassName(obj,sName) //-->obj是要获取元素的父级
{ //-->sName是class名字
if(document.getElementsByClassName)
{
return obj.getElementsByClassName('sName');
}
else
{
var aTmp = obj.getElementsByTagName('*');
var aRes=[];
var arr =[];
for(var i=0;i<aTmp.length;i++)
{
arr = aTmp[i].className.split(' ');
for (var j=0;j<arr.length;j++)
{
if(arr[j] == sName)
{
aRes.push(aTmp[i]);
}
}
}
return aRes;
}
}
大概思路,是将你要获取class元素父级下的所有元素都取出来,再循环查找className,满足的元素存到数组中,然后返回。
var classElements = [],allElements = document.getElementsByTagName('*');
for (var i=0; i< allElements.length; i++ )
{
if (allElements[i].className == n ) {
classElements[classElements.length] = allElements[i];
}
}
return classElements;
}
var redClassElements = getElementsByClassName('aa');
for (var i=0; i<redClassElements.length; i++) {
//do something
}
<div class='aa' onclick="alert(this.innerHTML)">2</div>
12.通过类名获取元素的对象集合#学习猿地