如何通过类名获取所有元素?

如何通过纯JavaScript的类名获得所有元素? 模拟$('。class')在Jquery中?

document.getElementsByClassName(klass)

请注意,有些引擎(特别是旧版浏览器)没有引擎。 如果是这样的话,你可以考虑使用垫片。 它会很慢,遍历整个文档,但它会工作。

一个简单而简单的方法

 var cusid_ele = document.getElementsByClassName('custid'); for (var i = 0; i < cusid_ele.length; ++i) { var item = cusid_ele[i]; item.innerHTML = 'this is value'; } 
 document.getElementsByClassName('your class'); 

或者你可以像这样构build你的类名,如果不行的话试试这个

 if (!document.getElementsByClassName) { document.getElementsByClassName=function(cn) { var allT=document.getElementsByTagName('*'), allCN=[], i=0, a; while(a=allT[i++]) { a.className==cn ? allCN[allCN.length]=a : null; } return allCN } } 

在一些浏览器中有一个document.getElementsByClassName(class)函数。 否则,唯一的select是遍历文档中的所有元素,方法是根据具有所需类名称的条件来检查每个元素。

这里描述了几种技术并进行了速度testing: http : //ejohn.org/blog/getelementsbyclassname-speed-comparison/

这应该工作:

 function(className) { var matchingItems = []; var allElements = document.getElementsByTagName("*"); for(var i=0; i < allElements.length; i++) { if(allElements [i].className == className) { matchingItems.push(allElements[i]); } } return matchingItems; } 
function getElementsByClassName(oElm, strTagName, strClassName){ var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName); var arrReturnElements = new Array(); strClassName = strClassName.replace(/\-/g, "\\-"); var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)"); var oElement; for(var i=0; i<arrElements.length; i++){ oElement = arrElements[i]; if(oRegExp.test(oElement.className)){ arrReturnElements.push(oElement); } } return (arrReturnElements) }
function getElementsByClassName(oElm, strTagName, strClassName){ var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName); var arrReturnElements = new Array(); strClassName = strClassName.replace(/\-/g, "\\-"); var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)"); var oElement; for(var i=0; i<arrElements.length; i++){ oElement = arrElements[i]; if(oRegExp.test(oElement.className)){ arrReturnElements.push(oElement); } } return (arrReturnElements) }