我试图获得一些类别为"特殊"的元素.我在网上找到了以下脚本,但它只返回一个空数组.
有谁看到什么是错的?
getElementsByClassName = function (node, classname){ var a = [], re = new RegExp('\b' + classname + '\b'), els = node.getElementsByTagName("*"), l = els.length, i; for (i = 0; i < l; i += 1) { if (re.test(els[i].className)) { a.push(els[i]); } } console.log(a) return a; } var wrap = document.getElementById('wrap'); getElementsByClassName(wrap, 'special')
wrap包含22 Lorem
个子节点,最后一个是,并且在firebug中我一直向下找到具有classname的节点,但随后它跳转a.push.我迷路了!
编辑: 好的,所以它现在可以工作,虽然知道为什么console.log(a)返回一个空数组仍然会很有趣
re = new RegExp('\b' + classname + '\b')
应该
re = new RegExp('\\b' + classname + '\\b')
您还应该在变量declerations的开头使用"var".