使用原生JavaScript,获取类操作符时:即使使用getElementByClassName,在Firefox和IE9以下是不兼容的。Firefox下是可以用它获取的到元素而IE不行,一般框架都会实现该方法,达到在IE和Firefox下兼容的问题。
下面我写的这个封装,多给了他一个参数(parent),目的在于:(缩小范围)只获取特定id名称下子元素的class名称
学以致用,要学会修改,以便适合自己项目的使用。
function getByClass (clsName,parent) { var oParent = parent?document.getElementById(parent):document, eles = [] , elements = oParent.getElementsByTagName("*"); for (var i=0;i<elements.length;i++){ if (elements[i].className == clsName){ eles.push (elements[i]); } } return eles; }
然后我们还可以通过正则来完美获取:
function getByClass(sClass,parent) { var oParent = parent?document.getElementById(parent):document, eles = []; elements = oParent.getElementsByTagName(‘*‘); var re = new RegExp(‘\\b‘+sClass+‘\\b‘,‘i‘) for (var i=0;i<elements.length;i++){ if (re.test(elements[i].className)){ eles.push(elements[i]); } } return eles;}
时间: 2024-10-06 16:29:48