我试图获得一些类别为"特殊"的元素.我在网上找到了以下脚本,但它只返回一个空数组.
有谁看到什么是错的?
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')
Run Code Online (Sandbox Code Playgroud)
wrap包含22 <p class="special">Lorem</p>个子节点,最后一个是,并且在firebug中我一直向下找到具有classname的节点,但随后它跳转a.push.我迷路了!
编辑: 好的,所以它现在可以工作,虽然知道为什么console.log(a)返回一个空数组仍然会很有趣
re = new RegExp('\b' + classname + '\b')
Run Code Online (Sandbox Code Playgroud)
应该
re = new RegExp('\\b' + classname + '\\b')
Run Code Online (Sandbox Code Playgroud)
您还应该在变量declerations的开头使用"var".
| 归档时间: |
|
| 查看次数: |
2132 次 |
| 最近记录: |