js怎么根据class获取元素
1个回答
展开全部
非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,满足的元素存到数组中,然后返回。
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,满足的元素存到数组中,然后返回。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询