getElementsByClassName&IE

pat*_*tad 0 javascript regex

我试图获得一些类别为"特殊"的元素.我在网上找到了以下脚本,但它只返回一个空数组.

有谁看到什么是错的?

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)返回一个空数组仍然会很有趣

BYK*_*BYK 5

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 次

最近记录:

16 年,1 月 前