• 有关document.getElementsByClassName和document.getElementsBytagName的区别和共性


    一、document.getElementsByClassName:

    返回一个包含了所有指定类名的子元素的类数组对象。当在document对象上调用时,会搜索整个DOM文档,包含根节点。也可以在任意元素上调用getElementsByClassName() 方法,它将返回的是以当前元素为根节点,所有指定类名的子元素。

    语法:

    var boxArr = document.getElementsByClassName("box");

    例如获取box类名的用法:
     1    //1.获取事件源
     2 //    var boxArr = document.getElementsByTagName("box");
     3 
     4     var boxArr = document.getElementsByClassName("box");
     5     //2.调用函数
     6     for(var i=0;i<boxArr.length;i++){
     7         fn(boxArr[i]);
     8     }
     9 
    10     //3.函数封装
    11     function fn(ele){
    12         var liArr = ele.getElementsByTagName("li");
    13         var spanArr = ele.getElementsByTagName("span");
    14         //绑定事件
    15         for(var i=0;i<liArr.length;i++){
    16             //绑定索引值(自定义属性)
    17             liArr[i].setAttribute("index",i);
    18             liArr[i].onmouseover = function (){
    19             for(var j=0;j<liArr.length;j++){
    20                  liArr[j].removeAttribute("class");
    21                  spanArr[j].removeAttribute("class");
    22             }
    23             this.setAttribute("class","current");
    24             spanArr[this.getAttribute("index")].setAttribute("class","show");
    25             }
    26         }
    27     }
    二、document.getElementsBytagName:

    Element.getElementsByTagName() 方法返回一个动态的包含所有指定标签名的元素的HTML集合指定的元素的子树会被搜索,不包括元素自己。返回的列表是动态的,这意味着它会随着DOM树的变化自动更新自身。所以,使用相同元素和相同参数时,没有必要多次的调用Element.getElementsByTagName() .

    
    

    如果是HTML文档中的某个元素调用了getElementsByTagName函数, 运行前会将参数转为小写字母形式。故不建议在驼峰式命名的SVG元素中使用。 Element.getElementsByTagNameNS() 适用于那种情况.

    
    

    Element.getElementsByTagName 和 Document.getElementsByTagName()类似,除了它的搜索被限制为指定元素的后代。

    语法:
    var liArr = document.getElementsByTagName("li");
    例如获取box类名的用法:
     1   <div class="box">
     2         <ul>
     3             <li class="current">鞋子</li>
     4         </ul>
     5     </div>
     6     <script>
     7         //1.获取事件源
     8         var liArr = document.getElementsByTagName("li");
     9         var spanArr = document.getElementsByTagName("span");
    10   </script>
  • 相关阅读:
    maven打包额外的资源文件
    阿里巴巴的程序员等级
    sql是最成功的第四代语言
    nginx的配置与应用
    浏览器的同源策略与跨域问题的解决方案
    算法:二分查找(基础)
    动态类型语言和静态类型语言
    【VS开发】单文档中往视图中加入控件
    【VS开发】使用VS2010创建MFC ActiveX工程项目
    【VS开发】使用VS2010创建MFC ActiveX工程项目
  • 原文地址:https://www.cnblogs.com/my12-28/p/11346744.html
Copyright © 2020-2023  润新知