首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >getElementsByClassName递归

getElementsByClassName递归
EN

Stack Overflow用户
提问于 2015-12-29 05:21:46
回答 1查看 3.8K关注 0票数 2

我一直在尝试实现一个行为与DOM方法完全相同的getElementsByClassName函数。通过大量的研究,我提出了以下几点,但返回的内容似乎与标准方法返回的内容不匹配。最后一条console.log语句似乎打印了我正在寻找的内容,但返回的内容不知何故不同。如有任何建议或帮助,将不胜感激!

代码语言:javascript
复制
var getElementsByClassName = function(className){
  var results= [];
  var bod = document.body;
    var iterateBod = function(bod){

    if(bod.classList && bod.classList.contains(className)){
        results.push(bod); 
        console.log(results)
    }else{
        for(var i = 0; i < bod.childNodes.length; i++){
            iterateBod(bod.childNodes[i]);
        }
    }
    };

iterateBod(bod);
console.log(results);
return results;
};
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-29 07:15:35

更改递归内部的条件

代码语言:javascript
复制
var getElementsByClassName = function(className){
var results= [];
var bod = document.body;
  var iterateBod = function(bod){
    if(bod.classList && bod.classList.contains(className))
     {
     results.push(bod); 
     console.log(results);
     if(bod.childNodes)
     {
         for(var i = 0; i < bod.childNodes.length; i++)
         {
             iterateBod(bod.childNodes[i]);
         }
     }
   }
 };

iterateBod(bod);
console.log(results);
return results;
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34504895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档