JavaScript节点查找方法getElementsByClassName兼容性

【JavaScript节点查找方法getElementsByClassName兼容性】为了保证JavaScript节点查找方法getElementsByClassName的兼容性,重写getElementsByClassName方法,mark一下:

var getElementsByClassName = function (opts) { var searchClass = opts.searchClass; var node = opts.node || document; var tag = opts.tag || '*'; var result = []; if(document.getElementsByClassName) { // 浏览器支持 var nodes = node.getElementsByClassName(searchClass); if(tag !== "*") { for(var i = 0; node = nodes[i++]; ) { if(node.tagName === tag.toUpperCase()) { result.push(node); } } } else { result = nodes; } } else { // 使IE8以下的浏览器能够支持该属性 var els = node.getElementsByTagName(tag); var elsLen = els.length; var i, j; var pattern = new RegExp("(^|\\s)" + searchClass + "(\\s|$)"); for (i = 0, j = 0; i < elsLen; i++) { if(pattern.test(els[i].className)) { // 检测正则表达式 result[j] = els[i]; j++; } } }return result; };


    推荐阅读