js怎么根据class获取元素

js怎么根据class获取元素,第1张

非IE6,7,8可以直接用自带的属性 getElementsByClassName,如果需要考虑兼容,就需要自己写了。下面是自己写的:

function getClassName(obj,sName) //-->obj是要获取元素的父级

{ //-->sName是class名字

if(documentgetElementsByClassName)

{

return objgetElementsByClassName('sName');

}

else

{

var aTmp = objgetElementsByTagName('');

var aRes=[];

var arr =[];

for(var i=0;i<aTmplength;i++)

{

arr = aTmp[i]classNamesplit(' ');

for (var j=0;j<arrlength;j++)

{

if(arr[j] == sName)

{

aRespush(aTmp[i]);

}

}

}

return aRes;

}

}

大概思路,是将你要获取class元素父级下的所有元素都取出来,再循环查找className,满足的元素存到数组中,然后返回。

JS通过id和class名称:documentgetElementById(IDname)或者documentgetElementsByClassName('ClassName');

兼容性:ID兼容,class 不兼容IE6,7,8

数量: 通过ID只能获取一个dom元素,通过class可以获取一组元素。

通用性:ID不能重复,class可以重复,所以class比较好用,这也是jQuery能被广泛应该的原因(选择器好)。

function getClass(parent,className,tagName){

var parent = parent || document,

tagName = tagName || "";

if(parentgetElementsByClassName){

return parentgetElementsByClassName(className);

}else{

var aEls = getTag(parent,tagName),arr = [],re=new RegExp('(^|\\s)'+className+'($|\\s)');

for (var i = 0; i < aElslength; i++) {

retest(aEls[i]className) && arrpush(aEls[i]);

};

return arr;

}

} //获取class (因为获取一组元素集合,如果单个使用一定要加[0]下标,不然会报错)

以上就是关于js怎么根据class获取元素全部的内容,包括:js怎么根据class获取元素、js如何获得本次事件的id或class名称、js 获取class等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9411682.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存