js 如何获取class的元素

不能用jq
<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"。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-08-07

非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,满足的元素存到数组中,然后返回。

第2个回答  2011-07-20
function getElementsByClassName(n) {
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
}
第3个回答  2011-07-20
<div class='aa' onclick="alert(this.innerHTML)">1</div>
<div class='aa' onclick="alert(this.innerHTML)">2</div>
第4个回答  2020-10-21

12.通过类名获取元素的对象集合#学习猿地