js获取classname值_js通过classname来获取元素的方法

  • Post author:
  • Post category:其他


原生JS有3种方式来获取元素:

getElementById(‘id’)

getElementsByName(‘name’)

getElementsByTagName(‘tag’)

getElementById是获取元素最快的方式,但我们不能给每个HTML元素都加以ID吧,所以我们需要一个很方便的通过className来获取元素

function getElementsByClassName(className,tagName){

var ele=[],all=document.getElementsByTagName(tagName||”*”);

for(var i=0;i

if(all[i].className==className){

ele[ele.length]=all[i];

}

}

return ele;

}

console.log(getElementsByClassName(“entry”));

console.log(getElementsByClassName(“entry”,”div”));

实现原理很简单,通过getElementsByTagName获取到一个元素集合,如果传入了tagname这个参数就根据传入的

tagname来获取,否则获取所有的元素,然后再一个一个元素来匹配classname是否相等..

上面这个方法很粗糙,能实现我们的基本需求,如果我们要获取的元素有多个 classname怎么办?

明显通过className==是不行了

所以我们只要把上面两篇文章的hasclass函数搬过来就OK了



版权声明:本文为weixin_39605326原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。