帮我解释一下这个封装函数??获取class

function getClass( selector ){
                var arr = [],content = content || document;
                var allEle = content.getElementsByTagName("*");//找到所有的标签
                selector = selector.slice(1);
                for( var i = 0; i < allEle.length; i++ ){
                    var allClassName = allEle[i].className.split(" ");
                    for( var j = 0; j < allClassName.length; j++ ){
                        if( selector === allClassName[j] ){
                            arr.push( allEle[i] );
                            break;
                        }
                    };
                }

                return arr;
            }
var arr = [],content = content || document;

第一句就不会了???谁能每条语句都解释一下

罗富文1995ing
浏览 1299回答 1
1回答

陈士愚

function getClass(selector) {     var arr = [], // 用于存储查找结果的数组         content = content || document; // 如果content为空,那么content等于document(js预留关键字,表示当前文档)     var allEle = content.getElementsByTagName("*"); // *表示所有;找到文档中所有的标签元素     selector = selector.slice(1); // 缩减匹配集合;从下标为1的位置起到最后(下标计数0开始)     // 遍历文档中的每个元素,查看与想选择的class是否相等     for (var i = 0; i < allEle.length; i++) {      // 遍历第i个元素,分割其类属性的值,形成类的数组;如“classNameA classNameB”分割成数组['classNameA','classNameB']         var allClassName = allEle[i].className.split(" ");         // 遍历验证第i个元素的类数组中有没有我们想找的那个selector,如果有,加入到arr(结果集)         for (var j = 0; j < allClassName.length; j++) {             if (selector === allClassName[j]) { // 如果查找选择器selector和第i个元素的类数组中的第j项相同                 arr.push(allEle[i]); // 将第i个元素加入到目标数组中                 break;             }         };     }     return arr; // 返回结果集合。 }其中content可能是全局变量,没贴出来,不知道在哪定义的,直接当document来理解也行; selector = selector.slice(1);这句知道语法上知道做了什么,不知道作者做这个操作的用意;因为这里也没有说明方法接收哪种格式的参数。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript