当前位置:  开发笔记 > 编程语言 > 正文

getElementsByClassName&IE

如何解决《getElementsByClassName&IE》经验,为你挑选了1个好方法。

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

有谁看到什么是错的?

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



1> BYK..:
re = new RegExp('\b' + classname + '\b')

应该

re = new RegExp('\\b' + classname + '\\b')

您还应该在变量declerations的开头使用"var".

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有